File Details
SimpleRaidAssign.zip
- R
- Apr 6, 2026
- 45.11 KB
- 12
- 2.5.5
- Classic TBC
File Name
SimpleRaidAssign.zip
Supported Versions
- 2.5.5
First stable release. Brings the addon under its final name (SimpleRaidAssign), polishes the editor flow, ships import/export, adds the per-attribution note field, the player picker dropdown and the minimap button.
Raids:Export(raidKey)serializes a single raid to a portable string with the formatSRA1:<encoded>. The encoded body uses the existing self-contained serializer fromComms.lua(no Ace3 dependency, ASCII only, no raw newlines / pipes / tabs — safe to copy-paste into chat windows or forum posts).Raids:Import(text, newName)parses an exported string, validates the format and required fields, and creates a new raid with a fresh id and new metadata (createdAt/createdBy/updatedAt/updatedByare reset to the current player and time). Errors are returned as(nil, "human readable message").Raids:PeekImportName(text)decodes just the original raid name from an import string without actually importing, used to pre-fill the "New name" input.- New buttons on the Raid Summary screen:
Importnext to+ New Raidin the header, andExporton every raid row (betweenRenameandDuplicate). - Reusable Import/Export dialog (520×380, draggable) with a multi-line
EditBoxinside aScrollFrame. Export mode highlights the string for instantCtrl+C. Import mode shows an additional "New raid name" input that auto-fills with<original name> (imported)after a paste, and the user can override it freely.
- New
notefield on the attribution data model, edited via a multi-lineEditBox(textarea-style) in the right edit panel under the players list. - The note is included in chat broadcasts, appended in parentheses after the players list (e.g.
Tanks: TankA, TankB (alterner les CDs)), with newlines collapsed and pipe characters stripped so the message stays valid. - Notes are persisted in
db.raids[].encounters[].attributions[].noteand synced through the same comms protocol as the rest of the raid.
- New
+ From Groupbutton in the right edit panel that opens a dropdown of the current raid / party members. Each entry is class-colored (warrior beige, mage cyan, etc.). Players already assigned to the current attribution are listed but disabled (no duplicates possible). - The previous comma-separated
playersBoxwas replaced by a vertical scrollable list of assigned players (each with a[X]remove button), plus a single-line text input +[Add]button below for manual entry. Manual typing keeps working in parallel for offline preparation when the named player is not in the current group.
- New
Attributions:ClearMarker(raidKey, encounterKey, attribId)helper that explicitly sets the marker to nil without the previous{ marker = false }patch hack. - New
[X]button next to the marker dropdown in the right edit panel — single click to clear the marker. The dropdown's(none)entry still works as a fallback.
- Draggable minimap button using the Grey Skull raid target icon as its texture (matches the addon's marker theme).
- Left-click toggles the main window, right-click pushes all raids to the group via the comms layer.
- Position persisted across sessions in
NS.db.settings.minimapPos(angle in degrees on the minimap edge). - Tooltip lists left/right click and drag actions.
- Renamed the addon from
WowShiftAssigntoSimpleRaidAssign. The folder,.tocfilename, SavedVariables (SimpleRaidAssignDB/SimpleRaidAssignCharDB), slash commands (/sra,/simpleraidassign), addon-message comms prefix (SRA1), and all frame / popup / dropdown names have been updated. Existing data fromWowShiftAssignis not auto-migrated; back up the oldWTF/.../SavedVariables/WowShiftAssign.luafile if you want to keep your raid plans, then re-create them under the new name. - Single
Announcebutton instead of separateAnnounce EN/Announce FRtoggles. The output is now always English. The previousannounceLanguagesetting was removed fromDEFAULTS. The localization scaffolding inBroadcast.luawas simplified to a flat English-only label table, but the dual-language groundwork could be re-introduced later if needed. - Default announce channel is now
RAID_WARNINGinstead ofRAID. Existing installs with a savedannounceChannelkeep their previous value (the merge is non-destructive). Previewrenders raid target icons by substituting{rt1}..{rt8}chat tokens with|TInterface\TargetingFrame\UI-RaidTargetingIcon_N:0|ttexture inlines before printing locally. The actualAnnounceflow still sends the raw tokens because WoW's chat parser handles them on the receiver side.- Players counter on the Raid Summary now counts distinct player names across all bosses and attributions, instead of the raw sum of slot occurrences. A player assigned to three bosses is counted once.
- Broadcast message separator changed from
|to/. The pipe character is reserved by WoW's chat protocol for escape codes (|cff...|r,|Hlink|h); using it as a free-text separator causedSendChatMessageto reject messages with "Invalid escape code". SafeSetTexthelper in the right edit panel: refuses to overwrite anEditBoxwhile it has keyboard focus, preventing background events (ROSTER_UPDATED,DATA_UPDATED) from wiping the user's in-progress typing.CommitPendingEditshelper force-commits any focused right-panelEditBox(context, note, players input) before changing the selected attribution / boss, so pending text is saved against the correct id instead of being lost.- Editor channel dropdown entries are now
notCheckable = truefor uniform left padding (the previously-checked entry had an extra checkbox indent the others lacked, breaking alignment on TBC Anniversary clients). Same fix applied to the marker dropdown. - Window size increased from 820×520 to 820×600 to fit the new note
textareaand the two-row players input. - Roster module: legacy
RAID_ROSTER_UPDATE/PARTY_MEMBERS_CHANGEDevents are now registered through apcall-wrapped helper, since TBC Anniversary rejects the older event names.
- Static popup edit boxes (
WSA_NEW_RAID,WSA_RENAME_RAID,WSA_DUPLICATE_RAID): on TBC Anniversary the field is exposed asself.EditBoxinstead ofself.editBox. The popup handlers now go through aPopupEditBox(self)helper that triesself.editBox, thenself.EditBox, then_G[self:GetName() .. "EditBox"]as a last resort. EasyMenuglobal removed in modern clients (including TBC Anniversary). Replaced with a localShowEasyMenupolyfill that reproduces the historical Blizzard implementation (UIDropDownMenu_Initialize+ToggleDropDownMenu). Used by the boss picker and player picker dropdowns.- Empty-state message on the Raid Summary screen was clipped because it was anchored on the 1×1 scroll child. It is now anchored on the panel itself with a centered
JustifyH. ScrollFramescroll children (raid summary list, boss sidebar, attribution list, players list, note textarea) are now resized via anAutoSizeScrollChildhelper that hooksOnSizeChangedandOnShow, plus a one-shotOnUpdatetick. Without this fix, rows anchoredTOPLEFT+TOPRIGHTcollapsed to 0 px wide on the very first refresh, making children (X buttons, names) pile up at the same position.- Multi-line note
EditBoxrequired an explicit non-zero size (SetSize(200, 100)) to receive clicks; without it the hit rect was zero and the field was un-focusable on the first show. Clicking anywhere in the backdrop now focuses the editbox so the user does not have to hit an existing line precisely. - Pending edits lost on Announce: clicking the
Announcebutton while still typing in the players input or note field would read stale data from the DB before the focus-loss handler ran. The Announce / Preview button click handlers now callCommitPendingEdits()first. - Boss row in the sidebar wrapped long names onto two lines and overlapped the attribute counter. The row is now single-line with
WordWrap(false), the title cap-anchored on the LEFT of the right-side counter so it truncates instead of wrapping.
- Shift-click absorber path: all the
ChatEdit_GetActiveWindow/ChatEdit_InsertLink/SecureUnitButton_OnClickhook code was removed (~190 lines fromRoster.lua). The original goal was to let the user shift-click a raid frame to assign the player to the current attribution, but the integration was unreliable across raid frame addons (ElvUI / oUF / Vuhdo all bypass the standard click flow). The new in-addon player picker dropdown covers the same use case more reliably and with no addon-side hooks. UI:IsReadyForShiftClickandUI:TryAbsorbPlayerLinkentry points (no longer called).Announce FRbutton and the EN/FR language toggle in the announce bar.announceLanguagesetting key fromDEFAULTS.- The old single-line
playersBox/ParsePlayerListworkflow is gone — the players section is now a structured list, not a comma-separated text field.Attributions.luastill shipsParsePlayerList/FormatPlayerListbecause they may be useful elsewhere, but the editor no longer uses them.

