promotional bannermobile promotional banner

Loot-Roll

Loot & Roll

File Details

Loot-Roll 1.7.3.zip

  • R
  • Mar 28, 2026
  • 4.86 MB
  • 10
  • 2.5.5
  • Classic TBC

File Name

Loot-Roll 1.7.3.zip

Supported Versions

  • 2.5.5
# Changelog

Version numbers match **`## Version`** in `Loot-Roll.toc`.
(버전은 **`Loot-Roll.toc`의 `## Version`** 과 맞춥니다.)

## [1.7.3]

### Changed

- **Loot method labels**: "전리품" split into five distinct labels — **"획득"** (general loot), **"거래"** (received via trade), **"구매"** (bought from merchant), **"추출"** (enchanting materials auto-detected via classID 7 / subclassID 12), **"입찰/차비/포기/주사위"** (roll results). Priority: merchant > trade > roll info > enchanting material > default "획득".
- **Channel button colors**: Say (white), Party (blue), Raid (orange), Guild (green) — text colors now match WoW chat channel colors.
- **"비우기" → "삭제"**: Clear button label changed in both roll and loot windows.
- **"공격대" → "공대"**: Raid channel button shortened.
- **"마력 추출" → "추출"**: Disenchant label shortened.
- **Separate tooltips for item and player name**: Hovering over the item column shows the item tooltip; hovering over the player name column shows the unit tooltip (class, level, guild) if the player is in party/raid, or a fallback name display otherwise. Checks player, target, focus, and all raid/party units.

### Fixed

- **SendChatMessage invalid escape code crash**: Replaced regex-based `sanitizeChatMsg()` with `getSafeChatLink()` that reconstructs item links via `GetItemInfo()` for guaranteed-clean links. Falls back to plain item name with all escape codes stripped if reconstruction fails.
- **Lua scoping bug**: `isTradeWindowOpen` / `isMerchantWindowOpen` were declared after the functions that reference them, causing trade/merchant detection to always fail. Moved declarations to the top of the file.
- **Enchanting material via trade**: Receiving enchanting materials through trade now correctly shows "거래" instead of being overridden to "추출". The enchanting material auto-detection only applies when the method is the default "획득".

### 한글

- **획득 방식 5종 자동 구분**: 기존 "전리품"을 세분화 — **"획득"** (일반 루팅), **"거래"** (거래 창), **"구매"** (상인), **"추출"** (마법부여 재료 자동 감지), **입찰/차비/포기/주사위** (주사위 결과). 우선순위: 구매 > 거래 > 주사위 정보 > 마법부여 재료 > 기본 "획득".
- **채널 버튼 색상**: 일반(흰색), 파티(파란색), 공대(주황색), 길드(녹색).
- **"비우기" → "삭제"**, **"공격대" → "공대"**, **"마력 추출" → "추출"**.
- **아이템/캐릭터 툴팁 분리**: 아이템 영역에 마우스 오버 시 아이템 툴팁, 캐릭터 이름 영역에 마우스 오버 시 유닛 툴팁(클래스, 레벨, 길드 등) 표시. 파티/공대에 없으면 이름만 표시.
- **Lua 스코프 버그 수정**: 거래/상인 감지 변수가 함수보다 뒤에 선언되어 항상 실패하던 문제 해결.
- **거래로 받은 마법부여 재료**: "추출"로 덮어쓰지 않고 "거래"로 정확히 기록.

## [1.7.2]

### Changed

- **Loot method labels**: "전리품" split into three distinct labels — **"루팅"** (looting from mobs/bosses), **"거래"** (received via trade window), **"추출"** (enchanting materials from disenchant). The method is auto-detected: trade window open → "거래", enchanting material (classID 7, subclassID 12) → "추출", otherwise → "루팅".
- **Channel button colors**: Say (white), Party (blue), Raid (orange), Guild (green) — text colors now match WoW chat channel colors.
- **"비우기" → "삭제"**: Clear button label changed from "비우기" to "삭제" in both roll and loot windows.
- **"공격대" → "공대"**: Raid channel button shortened.

### Fixed

- **SendChatMessage invalid escape code crash**: Replaced regex-based `sanitizeChatMsg()` with `getSafeChatLink()` that reconstructs item links via `GetItemInfo()` for guaranteed-clean links. Falls back to plain item name with all escape codes stripped if reconstruction fails.

### 한글

- **획득 방식 자동 구분**: 기존 "전리품"을 세 가지로 분리 — **"루팅"** (몹/보스 루팅), **"거래"** (거래 창으로 수령), **"추출"** (마법부여 재료 획득 시 자동 감지). 거래 창이 열려 있으면 "거래", 마법부여 재료(classID 7, subclassID 12)이면 "추출", 그 외 "루팅"으로 자동 기록.
- **채널 버튼 색상**: 일반(흰색), 파티(파란색), 공대(주황색), 길드(녹색) — WoW 채팅 채널 색상에 맞춤.
- **"비우기" → "삭제"**: 주사위·전리품 창의 비우기 버튼 이름을 "삭제"로 변경.
- **"공격대" → "공대"**: 공격대 채널 버튼 이름 축약.
- **전송 오류 수정**: `GetItemInfo()`로 아이템 링크를 재구성하여 깨진 이스케이프 코드 문제 해결. 실패 시 평문 아이템 이름으로 대체.

## [1.7.1]

### Fixed

- **SendChatMessage invalid escape code crash**: Added `sanitizeChatMsg()` to strip invalid `|` escape sequences before sending loot report lines to chat. If `normalizeItemLink` fails, the raw (potentially broken) link is replaced with the plain item name to avoid the `Invalid escape code in chat message` error.

### 한글

- **전리품 전송 시 잘못된 이스케이프 코드 오류 수정**: 채팅으로 전리품 보고 전송 시 아이템 링크에 포함된 잘못된 `|` 이스케이프 시퀀스를 정리하는 `sanitizeChatMsg()` 추가. 링크 정규화가 실패하면 깨진 링크 대신 아이템 이름만 전송하여 `Invalid escape code in chat message` 에러 방지.

## [1.7.0]

### Changed

- **Gray (Poor) items excluded from recording**: Items with quality 0 (gray/junk) are now hard-filtered and never recorded in the loot log, regardless of the quality filter setting.
- **"일반+" filter now means Common+ (quality 1)**: The first quality filter checkbox changed from "All" (quality ≥ 0) to "Common+" (quality ≥ 1), displayed in white. Users with the old "All" setting are automatically migrated to Common+.
- **English label**: "All" → "Common+" for consistency.

### 한글

- **회색(잡템) 아이템 기록 제외**: 품질 0(회색/잡템)은 필터 설정과 관계없이 전리품 기록에서 완전히 제외.
- **"일반+" 필터가 일반(Common) 이상**: 첫 번째 품질 필터가 "전체"(품질 ≥ 0)에서 "일반+"(품질 ≥ 1, 백색)로 변경. 기존 "전체" 설정은 자동으로 "일반+"로 마이그레이션.

## [1.6.9]

### Fixed

- **Lock button tooltip crash**: The localization table `L` was declared *after* `createLockButton`, so hovering the lock icon before `L` was initialized caused `attempt to index global 'L' (a nil value)`. Moved the `L` declaration (with lock-related keys) above `createLockButton` and merged the remaining keys afterward.

### 한글

- **잠금 버튼 툴팁 오류 수정**: 지역화 테이블 `L`이 `createLockButton` 함수 뒤에 선언되어 있어, 잠금 아이콘에 마우스를 올리면 `L`이 `nil`이라 오류 발생. `L` 선언(잠금 관련 키 포함)을 `createLockButton` 앞으로 이동하고 나머지 키는 이후 병합하도록 수정.

## [1.6.8]

### Changed

- **Loot toast: icon-only method display**: When a method icon is present (dice for Need, coin for Greed, X for Pass), the text label ("입찰"/"차비"/"포기") is omitted — only the icon and roll value (if any) are shown. Methods without an icon (e.g. "전리품") still display the text label.

### 한글

- **토스트 방식 표시 간소화**: 아이콘이 있는 방식(입찰=주사위, 차비=동전, 포기=X)은 텍스트 라벨 없이 아이콘 + 주사위값만 표시. 아이콘이 없는 방식(예: "전리품")은 기존대로 텍스트 표시.

## [1.6.7]

### Changed

- **Loot log display order reversed**: Newest items now appear at the top of the loot window, oldest at the bottom. Internal storage order is unchanged; only the UI display is reversed.

### 한글

- **전리품 기록 표시 순서 역순으로 변경**: 최신 아이템이 전리품 창 맨 위에 표시되고, 오래된 것이 아래로 내려감. 내부 저장 순서는 변경 없이 UI 표시만 역순.

## [1.6.6]

### Changed

- **Loot toast now requires Uncommon+ quality**: Toast notifications only appear for items of Uncommon (green, quality ≥ 2) or higher. Poor and Common quality items are still recorded in the loot log but no longer trigger a toast popup.

### 한글

- **전리품 토스트는 고급+ 아이템만 표시**: 토스트 알림이 고급(녹색, 품질 ≥ 2) 이상 아이템에서만 나타남. 일반·불량 품질 아이템은 전리품 기록에는 남지만 토스트는 뜨지 않음.

## [1.6.5]

### Fixed

- **Loot history crash**: `onLootHistoryRollComplete` threw `bad argument #1 to 'tonumber'` when `LOOT_HISTORY_ROLL_COMPLETE` fired with no arguments. Added a guard to return early when the vararg is empty.

### 한글

- **전리품 히스토리 오류 수정**: `LOOT_HISTORY_ROLL_COMPLETE` 이벤트가 인자 없이 발생할 때 `tonumber` 에러가 나던 문제 수정. 인자가 없으면 즉시 반환하도록 방어 코드 추가.

## [1.6.4]

### Fixed

- **Loot toast crash**: `methodIconTag` was called before its `local function` declaration in `LootRollLoot.lua`, causing `attempt to call global 'methodIconTag' (a nil value)`. Moved the function definition above `pushLootToast` so it is visible at the call site.

### 한글

- **전리품 토스트 오류 수정**: `methodIconTag` 함수가 선언 전에 호출되어 `nil` 에러가 발생하던 문제 수정. 함수 정의를 `pushLootToast` 위로 이동.

## [1.6.3]

### Changed

- **README.md**: Clarified that the addon was developed and tested on the **20th Anniversary Edition** (Burning Crusade Classic), with support for Era, Cataclysm Classic, and other Classic flavors.

### 한글

- **README.md**: **20주년 기념판** (불타는 성전 클래식)에서 개발·테스트되었음을 명시하고, 에라 / 카타클리즘 클래식 등 지원 범위를 기재.

## [1.6.2]

### Changed

- **README.md**: Restructured with English content first, followed by Korean section (CurseForge policy compliance).
- **CHANGELOG.md**: Header description now English-first with Korean in parentheses.

### 한글

- **README.md**: 영문을 먼저 배치하고 한글을 하단 섹션으로 재구성 (CurseForge 정책 준수).
- **CHANGELOG.md**: 상단 설명을 영문 우선으로 변경.

## [1.6.1]

### Improved

- **Settings panel "Open list" buttons now toggle**: "주사위 목록 열기" / "전리품 목록 열기" buttons change to "닫기" (Close) when the respective window is already open, and clicking them will close the window instead. Button text syncs automatically whenever the settings panel is shown.

### 한글

- **설정 패널 열기 버튼을 토글 방식으로 변경**: "주사위 목록 열기" / "전리품 목록 열기" 버튼이 해당 창이 이미 열려 있으면 "닫기"로 바뀌고, 클릭 시 창을 닫음. 설정 패널을 열 때마다 버튼 텍스트가 자동으로 동기화됨.

## [1.6.0]

### Fixed

- **Window position persistence**: Rewrote SavedVariables initialization to run inside `ADDON_LOADED` handler instead of top-level script execution, fixing the root cause where WoW loads WTF data *after* script execution. `DB` is now a stable placeholder table that receives WTF data at the correct time, and `_G.LootRollSaved = DB` ensures WoW serializes the correct table. Positions now survive `/reload` reliably.
- Removed all `SetUserPlaced(false)` calls and switched frames to anonymous creation (`CreateFrame("Frame", nil, UIParent)`) to prevent WoW's internal layout cache from interfering with position restore.
- Removed duplicate SavedVariables initialization from `LootRollLoot.lua`; the loot module now binds to DB via `LootRollLoot_BindDB()` called from `onAddonLoaded`.

### Added

- **"일반+" (All) quality filter** in the loot window — shows all items regardless of quality, added before the existing Uncommon+ filter.
- **Auto-show now requires Rare+ quality**: The "전리품 기록 시 창 자동 표시" setting only auto-opens the loot window for Rare (quality ≥ 3) items. Lower quality items are still recorded silently.
- **Window open-state persistence**: Roll and loot window visibility is saved on logout/reload and restored on next load — if a window was open, it reappears at the saved position.
- **Method icons in loot toast**: Need (dice), Greed (coin), Pass (X) icons now display in the top-screen toast notification alongside the method text.
- **Toast position moved up** to `y=-30` (near screen top) to avoid overlap with WoW's built-in GroupLoot Need/Greed/Pass frames.
- **Toast duration increased** from 5 seconds to 10 seconds.
- **Debug command** `/lr debugpos` prints current DB and frame position values for troubleshooting.

### 한글

#### 수정

- **창 위치 저장 근본 수정**: SavedVariables 초기화를 top-level이 아닌 `ADDON_LOADED` 핸들러 안으로 이동. WoW가 WTF 데이터를 스크립트 실행 *이후*에 로드하는 문제를 해결하여, `/reload` 후에도 창 위치가 정상 유지됨.
- `SetUserPlaced(false)` 호출 전부 제거 및 프레임을 익명 생성으로 전환하여 WoW 레이아웃 캐시 간섭 차단.
- `LootRollLoot.lua`의 중복 SavedVariables 초기화 코드 제거; `LootRollLoot_BindDB()`를 통해 DB 바인딩.

#### 추가

- 전리품 창에 **"일반+" 품질 필터** 추가 — 모든 아이템을 품질 무관하게 표시.
- **자동 표시는 희귀+ 전용**: "전리품 기록 시 창 자동 표시 (희귀+)" 설정이 희귀(품질 ≥ 3) 아이템에서만 창을 자동으로 열고, 그 이하는 조용히 기록만 함.
- **창 열림 상태 저장**: 주사위 창·전리품 창의 열림/닫힘 상태를 로그아웃·리로드 시 저장하여 다음 접속 시 그대로 복원.
- **토스트에 방식 아이콘 추가**: 입찰(주사위), 차비(동전), 포기(X) 아이콘이 토스트 알림에 표시.
- **토스트 위치 상향**: `y=-30`(화면 최상단 근처)으로 이동하여 WoW 기본 입찰/차비/포기 프레임과 겹침 방지.
- **토스트 유지 시간** 5초 → 10초로 증가.
- **디버그 명령어** `/lr debugpos` 추가 — DB 및 프레임 좌표 출력.

## [1.5.0]

### Changed

- **Addon renamed to Loot-Roll** (folder: `Loot-Roll`, TOC: `Loot-Roll.toc`). Display name, chat prefixes, slash commands, frame names, globals, and SavedVariables keys all updated accordingly.
- Primary SavedVariables keys are now `LootRollSaved` / `LootRollDB`; legacy `CompactRollSaved` / `CompactRollDB` are migrated automatically on first load.
- Primary slash command: `/lootroll` (aliases: `/lr`, `/croll`, `/compactroll`).
- Legacy global names (`CompactRoll*`, `LootRolls*`) are aliased for backward compatibility.

### 한글

- **애드온 이름을 Loot-Roll로 변경** (폴더: `Loot-Roll`, TOC: `Loot-Roll.toc`). 표시명, 채팅 접두사, 슬래시 명령어, 프레임명, 전역 변수, SavedVariables 키를 모두 변경.
- 주 SavedVariables 키: `LootRollSaved` / `LootRollDB`. 레거시 `CompactRollSaved` / `CompactRollDB`는 첫 로드 시 자동 마이그레이션.
- 주 슬래시: `/lootroll` (별칭: `/lr`, `/croll`, `/compactroll`).
- 레거시 전역 이름(`CompactRoll*`, `LootRolls*`)은 하위 호환을 위해 별칭 유지.

> **기존 사용자**: 폴더명이 바뀌면 WTF 파일도 바뀝니다. 기존 설정을 유지하려면 `WTF/.../SavedVariables/CompactRoll.lua`를 `Loot-Roll.lua`로 복사해 주세요.

## [1.4.74]

### Fixed

- Hardened persistence by synchronizing `CompactRollSaved` and legacy `CompactRollDB` as full table copies (not reference alias only), preventing stale legacy data from restoring old window coordinates after relog/reload.

### 한글

- `CompactRollSaved`와 레거시 `CompactRollDB`를 참조 별칭이 아닌 **전체 테이블 동기화**로 보강하여, 재접속/리로드 시 구키의 오래된 좌표가 복원되는 문제를 수정.

## [1.4.73]

### Changed

- Loot report lines sent to Say/Party/Raid/Guild now include a clickable **item hyperlink** (plus winner/method text), instead of plain item names.

### 한글

- 전리품 보고(일반/파티/공대/길드) 시 아이템을 **링크**로 보냄(득자/방식 텍스트는 기존과 동일).

## [1.4.72]

### Fixed

- Switched persistence to dedicated SavedVariables key (`CompactRollSaved`) with automatic migration from legacy `CompactRollDB`, while keeping legacy alias for compatibility. This reduces reload-time resets when legacy key is interfered with.

### 한글

- 저장 키를 전용 `CompactRollSaved`로 전환하고 기존 `CompactRollDB`를 자동 마이그레이션/별칭 처리.
- 레거시 키 간섭으로 `/reload` 시 데이터/위치가 초기화되는 문제를 완화.

## [1.4.71]

### Fixed

- Persist roll/loot window positions explicitly on `PLAYER_LOGOUT` (including `/reload`) to prevent drag-save misses.

### 한글

- `/reload` 포함 `PLAYER_LOGOUT` 시점에 주사위/전리품 창 위치를 강제 저장하도록 수정(드래그 저장 누락 보완).

## [1.4.70]

### Fixed

- Hardened roll/loot window position persistence with validated anchor points and backup coordinates (`lastPoint/lastX/...`) to avoid unexpected center resets after updates/reloads.

### 한글

- 업데이트/리로드 후 창이 중앙으로 돌아가는 문제 완화: 주사위/전리품 창 위치 저장에 앵커 유효성 검사 + 백업 좌표(`lastPoint/lastX/...`) 복구 로직 추가.

## [1.4.69]

### Added

- Added a settings button to restore roll/loot window positions to defaults.

### 한글

- 설정창에 `창 위치 기본값 복구` 버튼 추가 (주사위/전리품 창 위치 초기화).

## [1.4.68]

### Fixed

- Prevented loot history loss on reload by always binding loot module DB to the shared SavedVariables table (`_G.CompactRollDB`).

### 한글

- `/reload` 후 전리품 목록이 비워질 수 있던 문제 수정: 전리품 모듈 DB를 항상 공용 SavedVariables(`_G.CompactRollDB`)에 고정 바인딩.

## [1.4.67]

### Changed

- Removed item detail suffix (`[slot/material]`) from the loot list item column; item name + tooltip remain.

### 한글

- 전리품 목록 아이템 열에서 `[부위/재질]` 보조 표기 제거(아이템명 + 마우스오버 툴팁 유지).

## [1.4.66]

### Changed

- Loot toast text uses `GameFontHighlight` (slightly larger than Small).
- Loot toast winner name now attempts class color (fallback: white).

### 한글

- 전리품 토스트 폰트를 `GameFontHighlight`로 상향(기존 Small보다 약간 큼).
- 토스트 획득자 이름을 가능한 경우 직업색으로 표시(못 찾으면 흰색 유지).

## [1.4.65]

### Added

- Added a minimal 5-second top-of-screen loot result popup per finalized row (supports multiple rows stacking) showing `item / winner / method(+roll)`.

### 한글

- 전리품 최종 집계 시, 화면 상단에 5초 동안 보이는 미니 결과창 추가.
- 동시 다중 아이템은 줄로 누적 표시(`아이템 / 획득자 / 방식(+주사위)`).

## [1.4.64]

### Changed

- Loot quality filter checkboxes are grouped tighter, and added **Legendary+** (`quality >= 5`).

### 한글

- 전리품 품질 필터 간격을 좁혀 한곳에 모아 배치.
- **전설+** 필터 추가(품질 5 이상).

## [1.4.63]

### Added

- Roll window now shows top/bottom summary text near the header after **Result** announce.

### 한글

- 주사위 창에서 **결과**를 누르면, 창 상단에 `최고/최저` 요약을 표시.

## [1.4.62]

### Fixed

- **Green+ filter** now excludes known poor/common-quality rows correctly. Only truly unresolved item quality (uncached) is temporarily allowed in Green+ mode.

### 한글

- **고급+ 필터**에서 회색 아이템이 보이던 문제 수정. 이제 확정된 품질(회색/흰색)은 정상 제외되고, 품질 미확정(미캐시) 항목만 녹색+에서 임시 허용.

## [1.4.61]

### Changed

- In Korean locale, tie-elimination target names now display as `이름 님`.

### 한글

- 동수 탈락 대상자 표기를 `이름 님` 형식으로 변경.

## [1.4.60]

### Changed

- Tie-elimination no-winner notice now includes affected names: `(..., ...)`.
- Loot rows now show item tooltip on mouse hover.

### 한글

- 동수 탈락 후 무효 결과 문구에 대상자 목록을 `(..., ...)` 형태로 표시.
- 전리품 창에서 아이템 행에 마우스를 올리면 툴팁 표시.

## [1.4.59]

### Fixed

- **Korean greed roll parse**: handle loot lines with spacing and grammar tokens, e.g. `루시얌 님이 ...`, `... 굴려 65|1이;가; 나왔습니다`, so greed winners no longer get stored as `0`.

### 한글

- 한국어 차비 주사위 파싱 보강: `이름 님이`(공백 포함), `굴려 65|1이;가; 나왔습니다` 형식을 인식하도록 수정하여 **차비 0 기록** 문제 해결.

## [1.4.58]

### Fixed

- **Greed roll mapping in Korean loot flow**: improved parsing for Korean loot winner lines (`아이템을 차지했습니다`, nameless/self `아이템을 획득했습니다`) and per-item roll tracking. No longer clears all roll context after first winner, so parallel item rolls keep correct **Greed/Need icon + roll value**.

### 한글

- 한국어 전리품 문구(`아이템을 차지했습니다`, 무명/자기수령 `아이템을 획득했습니다`) 파싱을 보강하고, **아이템별 롤 컨텍스트**를 유지하도록 수정.
- 첫 우승 아이템 처리 후 전체 롤 로그를 비우지 않아, 동시 진행된 다른 아이템도 **차비/입찰 아이콘 + 주사위값**이 유지됨.

## [1.4.57]

### Fixed

- **Greed/Need winner method fallback**: loot chat lines are now tracked per **item + player** before final winner text, so winner rows keep the correct method/icon/value (e.g. **차비 + 주사위**) instead of falling back to generic encounter loot.

### 한글

- **차비/입찰 결과 반영 보강**: 최종 획득 문구 전에 뜨는 전리품 채팅을 **아이템+플레이어 단위**로 기록해, 우승 행이 `전리품`으로 떨어지지 않고 **차비/입찰 아이콘 + 주사위값**을 최대한 유지하도록 수정.

## [1.4.56]

### Fixed

- **Green+ capture**: when item info is not cached and quality resolves as `0` temporarily, loot rows are now kept (for **녹색+** mode) and re-evaluated later, preventing missed green-item logs.

### 한글

- **녹색+ 수집 누락 수정**: 아이템 정보 미캐시로 품질이 일시적으로 `0`일 때도(녹색+ 모드) 우선 기록하고, 이후 품질 재해석으로 필터를 다시 적용하도록 변경.

## [1.4.55]

### Changed

- **Loot report selection** is **multi-select**: **checkboxes** (not single radio). **Say / Party / Raid / Guild** sends **one chat line per checked row**, in list order.

### 한글

- 전리품 보고는 **여러 줄 동시 선택** 가능(**체크박스**). 채널 버튼 한 번에 **체크한 줄마다** 순서대로 한 줄씩 전송.

## [1.4.54]

### Changed

- **Loot log — report UX**: No separate report frame. Bottom row is **Clear**, **Select** (toggle), then **Say / Party / Raid / Guild**. **Select** shows a **radio** on each visible row; pick one line, then a channel button sends that line to chat immediately (plain text; color/link codes stripped).
- **Removed** the settings-panel report button and **`OpenReportWindow`**. **`/croll report`** opens the loot log and turns **Select** on.

### 한글

- **전리품 창**: **비우기 | 선택 | 일반·파티·공격대·길드**. **선택**을 누르면 각 줄에 **라디오**가 보이고, 한 줄 고른 뒤 채널 버튼을 누르면 **즉시** 해당 채팅으로 한 줄 전송.
- 별도 보고 창·설정의 보고 버튼 제거. **`/croll report`** = 전리품 창 열기 + 선택 모드 켜기.

## [1.4.53]

### Changed

- **Loot report** button removed from the **roll list** window; it lives on the **loot log** window (next to **Clear**) and still in **settings**. Slash **`/croll report`** unchanged.

### 한글

- **전리품 보고** 버튼을 **주사위 목록 창**에서 뺐습니다. **전리품 기록** 창(비우기 옆)·**설정**·**`/croll report`** 로만 열 수 있습니다.

## [1.4.52]

### Changed

- **Report window** now fills from the **loot log** (same **quality filter** as the loot window): each line is `Item / Winner / Method [roll]`. It is **no longer** tied to the roll-session **Result** announcement.

### 한글

- **보고 창**은 이제 **전리품 기록**으로 채움(전리품 창과 동일 **품질 필터**). 주사위 **결과** 알림과는 **연동하지 않음**.
- UI: **전리품 보고** / **전리품 결과 보고** 로 표기 정리.

## [1.4.51]

### Added

- **Result report window**: Open **Report** (main frame button or **`/croll report`**) to send lines to **Say**, **Party**, **Raid**, or **Guild** (edit before sending).
- **Settings**: **Result report** button below **Open roll list** / **Open loot log** opens the same window.

### Changed

- **Loot frame**: **Clear** button moved from the title row to the **bottom** of the window.

### 한글

- **보고 창**: **보고** 버튼 또는 **`/croll report`**로 채널 전송 (1.4.52부터 내용은 전리품 목록 기준).
- **설정**: 위 두 열기 버튼 아래 보고 버튼 추가.
- **전리품 창**: **비우기** 버튼을 **하단**으로 이동.

## [1.4.50]

### Changed

- **Roll capture**: Removed “wait for host `/roll` first” gating — **whoever’s valid system roll arrives first** sets the session range (`sessionBaseline`); chat `/roll`/`/주사위` and host **Roll** button behave the same. Duplicate, wrong-range, and target-range checks unchanged; **tie elimination** still applies in `announceWinner` on the valid `rolls` list.
- **Full roster**: When **valid** roll count matches group size, the designated broadcaster sends **two lines** (all rolled + “5 seconds”), waits **5s**, then **announces** (cancels the parallel 30s host timer via `countdownSeq`).
- **Manual close**: **Close now** (`즉시 마감`) and **Result** buttons, plus **`/croll announce`**, call **`manualAnnounceResultsNow()`** — bumps `countdownSeq` and **announces immediately** (even if not everyone rolled).

### 한글

- **선굴림**: 주관자만 받던 제한 제거 → **첫 유효 굴림**으로 주사위 범위 확정. **중복·범위·목표·동수탈락** 로직 유지.
- **전원 유효 굴림**: **5초 후** 파티/공대 알림(담당 클라만 발화 규칙 동일).
- **즉시 마감·결과·`/croll announce`**: 대기 없이 **바로 결과**.

## [1.4.49]

### Added

- **Settings**: **Open loot log** button next to **Open roll list**. `CompactRollLoot_Show()` builds the frame if needed and shows it (respects `addonEnabled()`).

### 한글

- **설정**: **전리품 목록 열기** 버튼 추가 (`CompactRollLoot_Show`).

## [1.4.48]

### Changed

- **Minimap Alt+right-click**, **`/croll on|off`**, and the **settings “Record rolls”** checkbox now toggle **both** roll capture and **loot log auto-show** together (`DB.enabled` + `DB.lootAutoShow`), close **both** windows when disabled, and sync **both** checkboxes. New loot rows are **not recorded** while disabled (`addLootRow` / upgrade guarded by `addonEnabled()`).

### 한글

- **미니맵 Alt+우클릭**, **`/croll on|off`**, 설정의 **주사위 기록** 체크: **전리품 기록 시 창 자동 표시**와 **함께** 켜짐/꺼짐, 끌 때 **주사위·전리품 창** 닫음. 꺼진 동안 **전리품 줄 추가 안 함**.

## [1.4.47]

### Changed

- **Settings panel**: Removed always-on checkboxes (duplicates, ignored notices, party relay, tie elimination). Replaced with a short **behavior** note; options stay fixed on in `syncSettingsControls` / `defaults`.

### 한글

- **설정창**: 항상 켜져 있던 **항상 적용**·**알림** 체크박스 제거 → **동작 안내** 문구로 대체. 실제 동작은 이전과 동일하게 강제.

## [1.4.46]

### Changed

- **Settings panel**: Removed the manual **target number** label and edit box. Target mode remains available via **`/croll target <n>`** and **`/croll target clear`**.

### 한글

- **설정창**: **수동 목표 숫자** 안내·입력란 제거. 목표 숫자는 **`/croll target <숫자>`** / **`/croll target clear`** 로만 설정.

## [1.4.45]

### Added

- **Minimap**: **Alt+right-click** toggles addon **enabled/disabled** (same as settings checkbox and `/croll on|off`). Tooltip lists the binding.

### 한글

- **미니맵**: **Alt+우클릭**으로 **사용함 / 사용안함** 전환(설정 체크·`/croll on|off`와 동일). 툴팁에 안내 추가.

## [1.4.44]

### Changed

- **Roll window & loot window** (Elv-style backdrop): **No visible frame border** — `edgeSize` 0 and transparent border color; flat background unchanged.

### 한글

- **주사위 창·전리품 창**: Elv 느낌 배경은 유지하고 **바깥 테두리선 제거**.

## [1.4.43]

### Changed

- **Loot window**: Title and **Clear log** are in one centered row so they no longer overlap.

### 한글

- **전리품 창**: 제목과 **비우기**를 한 덩어리로 묶어 **상단 가운데** 정렬.

## [1.4.42]

### Added

- **Loot log**: **Clear log** button (e.g. 비우기) next to the close control. Log is stored in **`CompactRollDB.lootHistory`** so it survives `/reload` and logout until you clear it.

### Changed

- **Loot log**: Removed the empty placeholder line. Entering a dungeon no longer **clears** the log (only roll/wait **dedup** state resets); persistence is user-controlled via **Clear log**.

### 한글

- **전리품 기록**: 닫기 옆 **비우기** 버튼. 기록은 **`CompactRollDB.lootHistory`**에 저장되어 **비우기** 전까지 재접속 후에도 유지. 빈 목록 안내 문구 제거. **인던 입장 시 기록 자동 삭제**를 하지 않음(수집용 중복 방지만 초기화).

## [1.4.41]

### Changed

- **Loot log table**: Header row has a solid background and bottom rule; data rows use **zebra striping**, **column separators**, and **row dividers**. **Left, right, and bottom** frame lines border the grid. Slightly taller rows and horizontal padding in cells for readability.

### 한글

- **전리품 표**: 헤더 배경·하단선, 데이터 행 **줄무늬**, **열 구분선**, **행 구분선**, **좌·우·하단** 얇은 외곽선. 행 높이·셀 여백 소폭 확대.

## [1.4.40]

### Changed

- **Loot log list**: Removed **ilvl** from each line. **Filter labels** (e.g. Uncommon+/Rare+/Epic+) use **item quality colors**. List is **column-aligned** (item / winner / method) with fixed pixel widths per column instead of pipe-separated rich text in one string.

### 한글

- **전리품 기록**: 줄마다 **ilvl** 표기 제거. **고급+/희귀+/영웅+** 필터 글자색을 **해당 품질 색**으로 표시. 아이템·획득자·방식 열을 **고정 폭**으로 맞춰 탭처럼 정렬.

## [1.4.39]

### Fixed

- **Loot log methods**: Korean **차비** was misclassified as Pass and “주사위” matched Need before Greed in `guessMethodFromLootMsg`, so Greed wins showed as **전리품**; system-message parsers now treat 차비 as **GREED**, 입찰/니드 as **NEED**, and only **포기** as Pass.
- **Roll values in loot chat**: Broader `rollKindAndValueFromLootMsg` patterns; `LOOT_HISTORY_ROLL_COMPLETE` fall back to the last **1–100** number in `GetPlayerInfo` when the winner tuple order differs.
- **Encounter vs group roll**: If **전리품** (toast/encounter) is recorded first, a later **입찰/차비/주사위** line for the same item+winner **upgrades** the row in place within the dedup window instead of being dropped.

### 한글

- **전리품 창 방식**: 차비=탐욕으로 파싱·표시, `님이 차비 → PASS` 오류 제거, 획득 채팅과 히스토리에서 **주사위 점수** 보강. 인카운터/토스트로만 먼저 찍힌 줄은 이후 **입찰·차비** 정보가 오면 **덮어씀**.

## [1.4.38]

### Changed

- **Settings UI**: Left addon list shows **Compact Roll** only (`settingsCategoryName`). Right panel title is `settingsTitle` plus **addon version** after `Ver.` (from `## Version` / `GetAddOnMetadata`).

### 한글

- **설정**: ESC 애드온 **좌측 목록**에는 **Compact Roll**만 표시. **우측 패널 제목**은 `… 거리기사 Ver.` 뒤에 **버전 숫자**(예: `1.4.38`)가 붙습니다.

## [1.4.37]

### Changed

- **Settings panel title** (`L.settingsTitle`): Korean now **Compact Roll - 펜구스의 흉포 - 거리기사 Ver.** (English: **Compact Roll - Penguseu's Ferocity - Ranged Knight Ver.**).

### 한글

- **설정창 제목**: **Compact Roll - 펜구스의 흉포 - 거리기사 Ver.**

## [1.4.36]

### Changed

- **Loot window title**: Korean title is now **Compact Roll (전리품)**; English uses **Compact Roll (Loot)**.

### 한글

- **전리품 창 제목**: `인던 전리품 기록` → **Compact Roll (전리품)**.

## [1.4.35]

### Changed

- **Korean loot label**: Display text for group loot “Need” is now **입찰** instead of 니드 (parsers still recognize 니드/need in chat).

### 한글

- **전리품 방식 표기**: 클라이언트 표시용으로 니드 → **입찰**로 통일. 시스템 메시지에 남는 ‘니드’ 문구는 그대로 인식해 **입찰**로 기록합니다.

## [1.4.34]

### Changed

- **Roll list empty state**: No longer shows the `—` placeholder when there are no captured rolls; only the baseline header line is shown.

### 한글

- **주사위 목록**: 아직 아무도 굴리지 않았을 때 `—` 줄은 표시하지 않고, 기준 주사위 안내 줄만 보이도록 변경.

## [1.4.33]

### Fixed

- **Auto-close headcount**: `GetNumGroupMembers()` vs nearby `UnitExists` counts can disagree; cap now uses both and takes the **smaller** when they differ (e.g. roster 5 but only 3 members present → close after 3 valid rolls).
- **Auto-close silent in small groups**: For groups of **6 or fewer**, every client with the addon may broadcast the close/announce (avoids the case where the single “min-GUID” broadcaster has no addon). Larger raids still use one min-GUID broadcaster to limit spam.

### 한글

- **자동 마감 인원**: API 그룹 인원과 주변 `party`/`raid` 유닛 수가 다를 때(미접속 멤버 등) **더 작은 값**을 기대 인원으로 사용해, 실제 같이 있는 3명만 굴렸을 때도 **3명이면 마감**되도록 수정.
- **소그룹 무응답**: 인원 **6명 이하는** 애드온이 있는 **클라이언트마다** 마감·발표를 보냄(예전에는 GUID가 가장 작은 사람만 보내서, 그 사람만 애드온이 없으면 채팅이 안 나감). **7명 이상 공대**는 이전처럼 GUID 최소 1명만 보내 스팸을 줄임.

## [1.4.32]

### Changed

- **Auto close broadcaster**: No longer requires party/raid leader. When valid rolls match group size, **every** client cancels its own pending 30s close timers (`countdownSeq`); **one** member’s client broadcasts (the player whose `UnitGUID` is lexicographically smallest in the group—same on every client, avoids chat spam).

### 한글

- **자동 마감 발화 주체**: 파티장/공대장이 아니어도 전원 유효 굴림이 차면 동작합니다. 이때 **모든** 클라이언트는 자신에게 걸려 있던 30초 마감 타이머를 취소하고, **그룹원 중 `UnitGUID` 문자열이 가장 작은 플레이어 1명**의 클라이언트만 마감·발표 채팅을 보냅니다(전원 동시 채팅 스팸 방지).

## [1.4.31]

### Added

- **Auto close when everyone rolled (leader only)**: In party/raid, when the number of **accepted** (valid) rolls equals the current group size (`party` + `player` or `raid1–40` count), the **party/raid leader** with CompactRoll sends `[CompactRoll] All N players have rolled…` (localized), cancels the in-progress 30s close timer, and runs **result announce** immediately.

### 한글

- **전원 유효 굴림 시 자동 마감·발표 (파티장/공대장만)**: 파티·공대에서 **인정된** 굴림 수가 현재 인원과 같으면, 애드온을 쓰는 **공대장/파티장** 클라이언트만 `[CompactRoll] N명이 주사위를 굴렸습니다. 마감합니다.` 를 보내고, 진행 중이던 30초 마감 타이머를 취소한 뒤 **즉시 결과 발표**를 실행합니다.

## [1.4.30]

### Changed

- **Roll list UI**: Ignored rows use solid red text instead of strikethrough. The list always starts with a **baseline hint** line (gold): manual target → `Required roll: 1-N`, auto baseline → `Required roll: low-high`, or pending → range set by first valid roll.

### 한글

- **주사위 목록**: 무시 줄은 취소선 대신 빨간색(`|cffff2020`)으로 표시. 목록 **맨 위**에 기준 주사위 안내 한 줄(금색): 수동 목표 → `기준 주사위: 1-N`, 자동 기준 확정 후 → `기준 주사위: 저-고`, 그 전 → `첫 유효 굴림 후 범위 확정`.

## [1.4.29]

### Removed

- **Whisper on wrong-range rolls** (v1.4.26): auto-whisper to mismatched players and related settings have been removed.

### 한글

- **기준 불일치 귓말** 기능(1.4.26) 및 설정 항목 제거.

## [1.4.28]

### Fixed

- **Strikethrough + non-Latin names**: Ignored roll lines use UTF-8–aware combining strikethrough (U+0336) while skipping WoW `|c` / `|r` / `|T|t` escapes, so Korean (and other multibyte) names no longer corrupt; ASCII-only lines still get the same effect.

### 한글

- **취소선 + 한글**: 무시 줄의 취소선을 UTF-8 문자 단위로만 적용하고 채팅 색상·텍스처 이스케이프(`|c`, `|r`, `|T|t`)는 통째로 보존해 한글 이름이 깨지지 않도록 수정.

## [1.4.26]

### Added

- **Whisper on wrong range**: Optional whisper to players whose roll range does not match the manual target (1–N) or the session baseline range. Debounce per player/kind; optional “party/raid leader only” when grouped. Settings: *Whisper players who roll the wrong range* / *Only as party/raid leader (when grouped)*.

### 한글

- **기준 불일치 귓말**: 수동 목표(1–N) 또는 자동 기준선 범위와 다른 주사위를 굴린 사람에게 귓말 안내(선택). 동일 인물·유형당 짧은 간격으로만 전송. 파티·공대 중에는 파티장/공대장만 보내도록 선택 가능. 설정에서 켜고 끔.

## [1.4.25]

### Fixed

- **Baseline rule correction**: In automatic baseline mode (manual target empty), baseline now uses only roll range (`low-high`) from the first accepted roll. Value is no longer locked. This fixes the case where first roll `3 (1-9)` incorrectly forced only `3` to be valid.

### 한글

- **기준선 규칙 수정**: 자동 기준선 모드(수동 목표 비움)에서 기준을 첫 유효 굴림의 **범위(저-고)** 로만 사용하도록 변경. 값 고정은 제거. `3(1-9)`가 기준일 때 `3`만 인정되던 오동작 수정.

## [1.4.24]

### Changed

- **Show ignored rolls in list**: Ignored entries are now kept in the roll window as visual rows and rendered with a centered strike-through style (gray), while final result calculation still uses only valid rows.

### 한글

- **무시된 굴림 목록 표시**: 무시된 항목도 주사위 목록에 남기고, 회색 취소선 스타일로 표시. 결과 발표 계산은 기존대로 유효 항목만 사용.

## [1.4.23]

### Changed

- **First-roll baseline (no manual target)**: When `rollTargetNumber` is empty, the first captured roll defines the required `(value, low, high)` for the rest of the round. Mismatches are ignored with a dedicated message. Duplicates still apply per player. Manual target mode (when set) overrides this.

### 한글

- **첫 굴림 기준선**: 수동 목표가 비어 있으면, 라운드에서 **처음 집계되는 굴림**의 숫자·범위가 기준이 되고 이후 굴림은 그와 같을 때만 인정. 불일치는 무시 메시지. 수동 목표는 기존처럼 우선.

## [1.4.22]

### Changed

- **Roll policy checkboxes forced on**: Duplicate-ignore, ignored-roll notice, and ignored-roll group notice are now always enabled (DB values forced true). Related checkboxes remain visible as policy indicators but are disabled in settings.

### 한글

- **롤 정책 체크 강제 ON**: 중복 무시, 무시 안내, 무시 안내 파티/공대 전송을 모두 항상 사용하도록 고정. 관련 체크박스는 정책 표시용으로만 남기고 비활성화.

## [1.4.21]

### Changed

- **Target-number strict matching**: In target mode, accepted rolls must now match both value and range (`1-target`). Example: with target `9`, only rolls from range `1-9` with value `9` are accepted. A `9` from `1-100` is ignored.

### 한글

- **목표 숫자 엄격 매칭**: 목표 모드에서 값뿐 아니라 범위도 `1-목표`로 일치해야 인정. 예: 목표 `9`면 `1-9` 범위의 `9`만 인정하고, `1-100`의 `9`는 무시.

## [1.4.20]

### Changed

- **Countdown start line**: `countStart` now mentions duplicate-ignore and tie-elimination policy so the raid/party sees the rules up front.

### 한글

- **개시(마감 카운트) 안내 문구**: 카운트 시작 메시지에 **복수무시, 동수탈락**을 명기.

## [1.4.19]

### Added

- **Target-number roll mode**: Optional `DB.rollTargetNumber` (settings edit box or `/croll target <n>` / `clear`). Only rolls matching the target value are recorded; wrong values are ignored (`showIgnored` prints a local notice). Each player can contribute at most one matching roll; a second matching roll is ignored (duplicate notice uses the existing ignored path).

### 한글

- **목표 숫자 집계 모드**: 설정 입력란 또는 `/croll target 99`, `/croll target clear` 로 목표 지정. **목표와 같은 숫자만** 목록에 들어가고(100→무시 후 99 재굴림 가능), **같은 사람이 목표 숫자를 두 번 맞추면 두 번째는 무시**.

## [1.4.18]

### Changed

- **Hosted roll message order**: Reordered host flow to announce countdown start first, then perform host `/roll`, then continue countdown ticks. This avoids confusion where your roll appeared before the start notice.

### 한글

- **주관 시작 순서 변경**: 주관 시 `카운트 시작 안내 -> 내 /roll -> 카운트 진행` 순서로 변경. 내 주사위가 먼저 보이고 시작 안내가 뒤따르던 혼선을 줄임.

## [1.4.17]

### Changed

- **Roll close countdown timing**: Hosted countdown now runs for 30 seconds total, while on-screen/chat tick numbers are shown only for the final 10 seconds (10..1).

### 한글

- **마감 카운트 타이밍 변경**: 주관 마감 카운트를 총 30초로 변경하고, 실제 숫자 카운트(10..1)는 마지막 10초에만 표시.

## [1.4.16]

### Added

- **Ignored-roll group notice option**: Added a settings checkbox to also send ignored duplicate-roll notices to party/raid chat. This broadcast is restricted to when you are the group leader.

### 한글

- **무시 주사위 파티/공대 알림 옵션 추가**: 중복 주사위 무시 안내를 파티/공대 채팅으로도 보내는 체크박스를 추가. 전송은 **파티장/공대장일 때만** 동작.

## [1.4.15]

### Changed

- **Roll close countdown**: Changed hosted close countdown from 5 seconds to 10 seconds (button label, start message, and timer logic).

### 한글

- **마감 카운트 변경**: 주관 마감 카운트를 5초에서 10초로 변경 (버튼 문구, 시작 안내, 실제 타이머 모두 반영).

## [1.4.14]

### Changed

- **Loot filter labels**: Renamed top quality filter labels to item-quality terms (Uncommon/Rare/Epic; 고급/희귀/영웅).

### 한글

- **전리품 필터 라벨 변경**: 상단 품질 필터 텍스트를 색상명 대신 품질명으로 변경 (`고급+ / 희귀+ / 영웅+`).

## [1.4.13]

### Changed

- **Loot method icon style**: In loot rows, method column now uses WoW native icons for roll types (Need=dice, Greed/차비=coin, Pass=pass icon), with roll value shown next to the icon.

### 한글

- **획득 방식 아이콘화**: 전리품 목록의 방식 컬럼에 와우 기본 아이콘을 사용하도록 변경. 입찰=주사위, 차비(탐욕)=동전, 포기=포기 아이콘, 수치는 아이콘 옆에 표시.

## [1.4.12]

### Changed

- **Loot rows now show final winners only**: Removed noisy non-final capture paths that made the log look like a full history dump. `LOOT_OPENED` no longer inserts rows, `CHAT_MSG_SYSTEM` is now used only to cache roll method/value, and general receive chat fallback rows are disabled. Added short cross-source dedup (`item + winner`) to avoid duplicate final entries from multiple events.

### 한글

- **전리품 로그를 최종 획득 기준으로 정리**: 전체 이력처럼 보이던 비최종 경로를 제거. `LOOT_OPENED`에서 행 추가를 중단하고, `CHAT_MSG_SYSTEM`은 이제 입찰/차비 정보 캐시 용도로만 사용. 일반 수령 채팅 fallback 추가도 끄고, 이벤트 중복으로 같은 아이템·같은 획득자가 여러 번 찍히지 않도록 단기 중복 방지(`item + winner`) 추가.

## [1.4.11]

### Changed

- **Loot log collection**: Rows below the selected minimum quality (Green+/Blue+/Purple+) are no longer stored in `lootLog`—previously everything was recorded and only the UI hid lower tiers. Collection now matches the filter setting.

### 한글

- **전리품 수집**: 체크한 최소 품질(녹색+/파란+/보라+)보다 낮은 아이템은 **애초에 목록에 넣지 않음**. 예전에는 전부 저장한 뒤 화면에서만 숨겼음.

## [1.4.10]

### Fixed

- **Loot log looked empty**: Rows were filtered by “Green+” using `GetItemInfo` quality before items were cached (often `nil`/wrong), so everything was hidden. Quality is now read from the item link `|cffRRGGBB|` prefix when present, chat extraction takes links from the raw message before color-stripping, and the list refreshes stored quality on redraw. Poor (0) quality from `GetItemInfo` is handled with `~= nil` checks. Korean “차비” is classified as Pass before Greed in roll-guessing.

### 한글

- **전리품 창이 비어 보이던 현상**: 기본 필터가 “녹색+”인데 `GetItemInfo`가 아직 없을 때 품질이 0으로만 잡혀 목록에서 전부 걸러졌습니다. 링크의 `|cff...|Hitem:` 색으로 즉시 품질을 판별하고, 채팅은 색 제거 전 원문에서 링크를 뽑으며, 목록 갱신 시 품질을 다시 계산합니다. 회색(0)도 `if q` 오판 안 하도록 수정. “차비”는 탐욕보다 포기 쪽으로 먼저 분류.

## [1.4.9]

### Fixed

- **Starter roll guard**: Prevent stale `waitForStarterRoll` from affecting later rounds. `/roll` host start now checks send success; on failure it clears starter-wait immediately. Added starter-wait timeout auto-release so previous failed starts no longer cause earlier high rolls to be ignored.

### 한글

- **주관 시작 대기 오작동 방지**: `waitForStarterRoll`이 라운드 넘어가 남지 않도록 수정. `/roll` 전송 실패 시 대기 상태를 즉시 해제하고, 대기 타임아웃 자동 해제를 추가해 다음 라운드에서 선굴림이 무시되는 문제를 방지.

## [1.4.8]

### Fixed

- **Korean roll/loot fallback parser**: Added explicit `CHAT_MSG_SYSTEM` parsing for Need/Greed/Pass patterns and final winner resolution from `CHAT_MSG_LOOT` (`...님이 아이템을 획득했습니다: ...`). This path mirrors the LootLogger-style flow (roll session -> winner confirm -> record) for clients where event-only capture is unreliable.

### 한글

- **한글 주사위/획득 파서 보강**: `CHAT_MSG_SYSTEM`에서 입찰(니드)/탐욕/차비(포기) 패턴을 직접 저장하고, `CHAT_MSG_LOOT`의 `...님이 아이템을 획득했습니다: ...` 문장에서 최종 승자를 확정해 기록하도록 추가. (제안하신 LootLogger 흐름 반영)

## [1.4.7]

### Fixed

- **Loot still not logging on some clients**: Added broader capture paths including `LOOT_OPENED` slot links and removed strict enabled-gating inside loot event handlers. This ensures loot rows are recorded even when specific chat/history events are missing.

### 한글

- **일부 클라에서 전리품 기록 누락 추가 보완**: `LOOT_OPENED` 슬롯 링크 경로를 추가하고, 전리품 이벤트 내부의 과도한 차단 조건을 완화. 특정 채팅/히스토리 이벤트가 비어도 전리품 행이 기록되도록 수정.

## [1.4.6]

### Added

- **Lock buttons (TankerStats-style)**: Added lock/unlock icon buttons to both the **roll window** and the **loot log window**. When locked, frame dragging is disabled; when unlocked, frames can be moved again.

### 한글

- **잠금 버튼 추가(TankerStats 스타일)**: **주사위 창**과 **전리품 창**에 자물쇠 버튼 추가. 잠금 시 위치 이동(드래그) 불가, 잠금 해제 시 다시 이동 가능.

## [1.4.5]

### Fixed

- **Loot source reliability**: Added native loot-system event paths (`LOOT_HISTORY_ROLL_COMPLETE`, `SHOW_LOOT_TOAST`) and de-dup logic. Loot rows can now be recorded from game events even when chat parsing is delayed or formatted differently.

### 한글

- **전리품 기록 신뢰성 개선**: 기본 전리품 이벤트(`LOOT_HISTORY_ROLL_COMPLETE`, `SHOW_LOOT_TOAST`) 경로를 추가하고 중복 방지를 넣음. 채팅 파싱이 늦거나 형식이 달라도 게임 이벤트 기반으로 기록되도록 보강.

## [1.4.4]

### Fixed

- **Loot parsing hardening**: Normalize loot chat lines before parsing (strip color codes and player hyperlinks), add robust item-link fallback (`item:id` -> link), and match waiting roll rows against normalized text. This fixes cases where loot was still not recorded on clients that embed player/item links differently.

### 한글

- **전리품 파싱 보강**: 전리품 채팅을 파싱 전에 정규화(색 코드/플레이어 하이퍼링크 제거), `item:id` 기반 링크 보정, 대기 중 주사위 매칭도 정규화 텍스트 기준으로 비교하도록 변경. 클라별 채팅 포맷 차이로 기록이 안 되던 케이스를 보완.

## [1.4.3]

### Fixed

- **Loot log not recording**: Loot window now records general loot-receive chat lines (e.g. “X receives loot: [Item]” / “You receive loot: [Item]”), not only pending group-roll matches.

### 한글

- **전리품 기록 안 됨 수정**: 주사위 매칭 대기 중인 아이템뿐 아니라, 일반 전리품 수령 채팅(“누가 [아이템]을 획득/수령”)도 기록하도록 변경.

## [1.4.2]

### Changed

- **UI style**: Roll list window and loot log window are now reskinned to a dark, flat **ElvUI-like** look (minimal border, dark background, cleaner title contrast). Main action buttons also use the same flat tone.

### 한글

- **창 디자인**: 주사위 창/전리품 창을 어두운 플랫 톤의 **ElvUI 느낌**으로 변경(얇은 보더, 다크 배경, 제목 대비 개선). 하단 주요 버튼도 같은 톤으로 통일.

## [1.4.1]

### Changed

- **Loot log style/filter**: Top-to-bottom order is now **oldest first**. Added quality threshold checkboxes (**Green+ / Blue+ / Purple+**) in the loot window to filter visible rows. Loot rows now include icon + colored name + item detail (equip slot/armor type when available) + ilvl.
- **Roll detail on right**: For group-loot messages that include roll data, the method column now records **method + roll number** (e.g., Need 97 / 차비 88).

### 한글

- **전리품 창 정렬/필터**: 목록을 **상단부터 오래된 순**으로 표시. 창 상단에 **녹색+ / 파란색+ / 보라색+** 필터 체크를 추가해 기준 품질 이상만 보이도록 변경.
- **AtlasLoot 느낌 표시**: 각 줄에 **아이템 아이콘 + 품질색 이름 + 부위/방어타입(가능 시) + ilvl**을 함께 표시.
- **우측 획득 방식 상세**: 공대 주사위 채팅에서 값이 잡히면 **방식 + 주사위 수치**(예: 입찰 97, 차비 88)로 기록.

## [1.4.0]

### Added

- **Dungeon loot log** (`CompactRollLoot.lua`): Resets when **entering a party/raid instance**; records **ENCOUNTER_LOOT_RECEIVED** (who got boss/personal loot) and **group loot rolls** (`START_LOOT_ROLL`) with winner/method when the client or chat reports it. **Window**: `/croll loot`, or the **Loot** button on the roll list. Setting: **auto-show** on new entry.

### 한글

- **인던 전리품 기록**: **파티/레이드 인스턴스에 들어갈 때** 목록 초기화. **보스·전리품**(`ENCOUNTER_LOOT_RECEIVED`)과 **공대 주사위 창**(`START_LOOT_ROLL`)을 추적해 아이템·획득자·방식(입찰/차비 등, 가능할 때)을 표시. **`/croll loot`** 또는 주사위 창의 **전리품** 버튼. 설정에 **전리품 기록 시 창 자동 표시** 옵션.

## [1.3.5]

### Changed

- **Roll list window**: Closing the window (X, minimap right-click hide, `/croll hide`, `/croll toggle` when hiding, or disabling the addon) now **clears recorded rolls** automatically.

### 한글

- **주사위 목록 창**을 닫을 때(닫기 버튼, 미니맵 우클릭으로 닫기, `/croll hide`·`toggle`로 숨김, 기록 사용 끔) **목록을 자동으로 비움**.

## [1.3.4]

### Added

- **Settings**: Checkbox **Record rolls / 주사위 기록 사용함** to enable or disable capture and announce (same as `/croll on` / `off`). Slash commands still work; UI stays in sync.

### 한글

- **설정**: **주사위 기록 사용함** 체크로 사용함·사용안함 전환 (`/croll on`·`off` 와 동일). 슬래시와 체크 상태가 맞춰짐.

## [1.3.3]

### Changed

- **Minimap**: Right-click now **toggles the roll list window** (open/close) instead of enabling/disabling the addon. Use **`/croll off`** / **`/croll on`** (or settings) to turn capture on or off.

### 한글

- **미니맵**: 우클릭은 **사용함/사용안함**이 아니라 **주사위 창 열기·닫기**입니다. 애드온 끄기/켜기는 **`/croll off`**, **`/croll on`** 또는 설정에서 하세요.

## [1.3.2]

### Fixed

- **`/roll` (host) button**: Hidden dummy `EditBox` + `ChatEdit_SendText` often does nothing on current clients. Now tries real chat edit (`ChatFrame_OpenChat`, `ChatFrame1EditBox`, etc.) and `RunMacroText` fallback; prints a hint if all fail.
- **Host flow**: One click = **clear** → **next-frame `/roll` (1–100)** → **deadline countdown** → auto **announce** at end.

### 한글

- **`/roll` 주관 버튼**: 숨김 입력창 방식이 기념판 등에서 먹통인 경우가 많아, **실제 채팅 입력창·매크로** 순으로 `/roll` 실행. 전부 실패 시 채팅에 안내.
- **주관 흐름**: 한 번에 **비우기 → (다음 프레임) /roll → 마감 카운트 → 끝에 결과 발표**.

## [1.3.1]

### Fixed

- **Names**: Normalize roll player names from system messages (trim, strip color codes, `Ambiguate(..., "none")` when available) so announce / tie-elimination lines show consistent display names.

### 한글

- 시스템 메시지에서 잡힌 **플레이어 이름**을 정리(공백·색 코드 제거, 가능 시 `Ambiguate`로 서버 접미사 통일)해 **동수 탈락/결과 발표**에 이상한 이름이 나오던 경우를 줄임.

## [1.3.0]

### Changed

- **Host flow**: `/roll` button now starts a hosted round (`clear -> wait for my first roll -> collect from there`), so stale entries are automatically excluded when the leader starts rolling.
- **Deadline countdown**: Added a **5s count** button for raid/party close calls; after countdown ends, it automatically announces results.
- **Result policy**: Tie-elimination is now **always on** for announce logic and reports **both highest and lowest** results.
- **Tie-elim notes**: If highest or lowest required elimination, separate lines are posted to explain how many tied entries were removed.

### 한글

- **주관 시작 흐름**: `/roll` 버튼이 `비우기 -> 내 첫 굴림까지 대기 -> 그 시점부터 집계`로 동작해 이전 기록이 자동 제외됩니다.
- **마감 카운트**: **5초 카운트** 버튼 추가. 카운트 종료 후 결과를 자동 발표합니다.
- **결과 정책**: 알림 계산에서 **동수 탈락을 항상 적용**하고, **1등 + 꼴찌**를 함께 발표합니다.
- **동수 탈락 안내**: 1등/꼴찌 결정에 동수 탈락이 사용되면, 몇 명이 탈락됐는지 별도 메시지로 안내합니다.

## [1.2.1]

### Fixed

- **[Announce]** If **every** stored roll has the **same value** (e.g. two players both rolled `2` on `1–2`), always post the **no winner / roll again** message — even when **Eliminate tie** is off. Previously that case only showed a generic tie line.

### 한글

- 목록에 있는 주사위가 **전원 같은 숫자**면(두 명 다 2 등) **동수 탈락·재굴림** 안내를 **항상** 보냄. 예전에는 옵션 꺼진 상태에서 `동점 1등`만 나가던 경우를 수정.

## [1.2.0]

### Added

- **Tie elimination (알림 전용)** — Settings checkbox and `/croll tie` (or `eliminate`) toggle. When on, **[Announce]** repeatedly drops everyone tied at the current highest roll until one player has the highest unique value; if nobody remains (e.g. only two players with the same roll), posts a **re-roll** message instead of a winner.
- **Strings** — `announceAfterElim` when a winner only exists after elimination; `announceTieElimNoWinner` when everyone at the top was tied away.

### 한글

- **동수 탈락** 옵션(설정 체크·`/croll tie`): 알림 시 최고값 동점인 사람을 단계적으로 탈락시키고, 남은 사람 중 유일 최고값이 1등. 전원이 동점만 남으면 **재굴림** 안내.

## [1.1.5]

### Changed

- **Minimap tooltip** (Auto Mount Gear style): shows **Status:** line with **green “On” / red “Off”** (`|cff00ff00` / `|cffff0000`) so enabled state is obvious; refreshes while tooltip stays open after right-click toggle. Icon uses **desaturate + gray** when off, like AMG.

### 한글

- 미니맵 툴팁에 **현재 상태: 사용함(초록) / 사용안함(빨강)** 표시, 우클릭 직후에도 툴팁 갱신.

## [1.1.4]

### Changed

- **Minimap icon**: Dropped **LibDBIcon / LibDataBroker** (removed `embeds.xml` from TOC). The dice button is now a **native `Minimap` child button**, same visual style as the default tracking buttons, with drag-to-reposition and `MINIMAP_UPDATE_ZOOM` reposition. This avoids clients where LDB never registered an icon.

### 한글

- 미니맵 아이콘을 **라이브러리 없이** 미니맵에 직접 붙이도록 변경. `embeds.xml` 제거.

## [1.1.3]

### Fixed

- **Load errors on some clients**: Replaced `InterfaceOptionsSmallCheckButtonTemplate` (missing on some builds) with `UICheckButtonTemplate` so the addon actually loads.
- **Settings UI**: Registers with **`Settings.RegisterCanvasLayoutCategory`** (and legacy **`InterfaceOptions_AddCategory`** fallback) so **Compact Roll** appears under ESC → Options → AddOns.
- **Minimap icon**: Retry init on **`PLAYER_LOGIN` / `PLAYER_ENTERING_WORLD`**; call **`LibDBIcon:Show`** after register; clear stale **`minimap.hide`** once via `minimapHideCleared131`.
- **Roll pattern**: If `RANDOM_ROLL_RESULT` is not ready at `ADDON_LOADED`, pattern is created when needed or on entering world.

### 한글

- 일부 클라에서 없는 체크박스 템플릿 때문에 **애드온 전체가 로드 실패**하던 문제 수정.
- 블리자드 **설정(애드온)** 목록에 **Compact Roll** 항목 등록.
- 미니맵 아이콘 초기화 재시도·표시 보강.

## [1.1.2]

### Fixed

- **Minimap / TOC icon**: Custom `Textures\MinimapIcon.png` was referenced but often missing from the package, so the LDB icon had no valid texture and appeared invisible. Now uses Blizzard’s **`Interface\Buttons\UI-GroupLoot-Dice-Up`** by default (same idea as RollTracker’s dice).

### 한글

- **미니맵 아이콘이 안 보이던 문제**: 커스텀 PNG 경로만 쓰다 파일이 없으면 텍스처가 깨짐 → 기본 **주사위** 아이콘으로 변경.

## [1.1.1]

### Fixed

- **TOC `## Interface`**: Added current Anniversary / multi-flavour interface IDs (e.g. `120001`, `120000`, …) so the addon is not flagged out of date on the `_anniversary_` client. (Previously only `11503` / `40400` era IDs.)

### 한글

- 기념판 등 최신 클라이언트용 **인터페이스 번호**를 TOC에 추가해 **구버전 애드온**으로 뜨던 문제 수정.

## [1.1.0]

### Added

- Minimap button via **LibDBIcon-1.0** + **LibDataBroker-1.1** (embedded libs).
- **Left-click**: toggle **settings** window (duplicate-roll option, ignored-roll chat notices, open roll list).
- **Right-click**: **enable / disable** addon (disabled: no roll capture, grayed icon, main list hidden).
- Slash: **`on`**, **`off`**, **`settings`** / **`config`**.
- **`Art/CompactRoll-CurseForge-400.png`**: 400×400, 1:1 asset for CurseForge listing; **`Textures/MinimapIcon.png`** for in-game / TOC.
- **README.md**, **CHANGELOG.md**.

### 한글

- 미니맵 아이콘 추가 (좌클릭 설정 창 토글, 우클릭 사용함/사용안함, 드래그로 위치·저장).
- 슬래시 `on` / `off` / `settings`.
- 커스포지용 **400×400** 이미지 및 문서 추가.

## [1.0.1]

- Removed **1–100-only** filter; all roll ranges from system messages are recorded. Non–1–100 lines show `(low-high)` in the list.

## [1.0.0]

- Initial release: roll list, clear, announce, optional duplicate ignore and ignored-roll chat messages, `/croll` commands.