Skip to content

Add NPC groups feature#330

Open
HarmlessHarm wants to merge 6 commits intodevelopfrom
feature/npc-groups
Open

Add NPC groups feature#330
HarmlessHarm wants to merge 6 commits intodevelopfrom
feature/npc-groups

Conversation

@HarmlessHarm
Copy link
Collaborator

Summary

  • Add NPC groups for organizing NPCs into custom categories with full CRUD management
  • Support group assignment in the NPC editor and group filtering in the NPC list
  • Add campaign-based groups that auto-populate from user campaigns
  • Filter encounter entity picker by campaign group
  • Exclude groups from NPC export/import to avoid cross-account issues

Changes

  • New NpcGroupManager component for creating, editing, and deleting groups
  • New Firebase service (npc_groups.js) and Vuex store module (npcGroups.js)
  • Group multi-select in NPC editor, group chips in NPC table
  • Campaign-only NPC filter toggle in encounter entity picker
  • Shared campaignGroupKey() utility function

- Add NPC groups Firebase service and Vuex store module
- Add group CRUD management dialog (NpcGroupManager)
- Add group assignment in NPC editor via multi-select
- Display group membership as chips in NPC table
- Add group filter dropdown to NPC list
- Cascade group cleanup when deleting a group
- Sync groups field to search_npcs for client-side filtering
Groups are user-specific and should not be transferred between accounts.
Strip groups during export to keep JSON clean, and during import to
avoid AJV schema validation errors.
…ey helper

Add toggle to filter custom NPCs by campaign in the encounter entity picker.
Extract shared campaignGroupKey() utility to replace hardcoded 'campaign__'
prefix across 4 files. Fix router-link using wrong key property (col.key →
props.key).
@HarmlessHarm HarmlessHarm added feature New feature or request quality of Life and removed feature New feature or request labels Mar 4, 2026
- Add aria-labels to icon-only anchors in NpcGroupManager
- Rename npcGroupServices to PascalCase (NpcGroupServices)
- Remove redundant try/catch blocks that only rethrow
- Replace nested ternary with if/return in visibleColumns
@sonarqubecloud
Copy link

sonarqubecloud bot commented Mar 4, 2026

@HarmlessHarm
Copy link
Collaborator Author

#329

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant