Add support for mooks to the combat tracker
Summary
We have mooks as an NPC subtype, but we don't have mechanical support for them such as combining their initiative in the combat tracker or combining their HP pool.
Rules Summary
Mooks are weaker monsters that can be cut down in large numbers in a single turn. Damage is not tracked against single mooks, but against the entire mob of mooks you’re facing. If you roll damage against a mook and it is greater than the single mook’s hit points, then another mook takes the remainder. In this way, damage can cascade to multiple mooks, and a player can kill multiple in one turn, even if they’re not all directly within your attack range.
A mook’s hit point value is one-fifth that of a regular monster.
Mooks move and attack individually. Mooks deal a fixed damage when they hit, and double damage when they roll a natural 20.
Mooks can be split up into multiple mobs with different initiative numbers and hit point pools for each.
Technical Notes
- Ideally, the linking can happen entirely within the combat tracker. Relationships between mooks shouldn't last beyond a single combat, so that feels like the appropriate place to store the data.
- The combat tracker will also need to be extended to support mook display. My initial thought would be to show a mob as a single row in the combat tracker, but render them as an expandable row to show all of the mooks that make up the mob.
- We can't assume a mob is made up of a single type of mook, or that there will be only one mob.
- We should probably prompt for mook related stuff on the following events:
- Mook NPC dropped onto the canvas (prompt for how many, and pull the multi-click UX from Dungeon Moon)
- Combat started (prompt to try to guess what the possible mobs are and display those, but allow the user to customize)
- New mook added to the initiative (prompt to guess which mob they should be added to, but allow the user to customize)
- Mob is reduced by mook HP value (prompt to see which mook died)
Acceptance Criteria
-
Combat tracker is extended to support mook relationship data -
Combat tracker is extended to display mooks -
Prompts described above are implemented