Characters: seed the current party sheets, add skill expertise
The party sheets in assets/characters/ changed: Darrah_Oakwanderer.pdf is gone, replaced by Darragh Fermwyr (same halfling ranger, renamed and updated), Owayn Fermwyr (stout halfling fighter, BJ) and Dunnchadh (ghostwise halfling druid, Circle of the Blighted, Rick). - app:character:seed now carries those three sheets, read from the PDFs' form fields. Darragh's portrait is renamed to match his new name. - New skill expertise field (double proficiency bonus), since Darragh's Deft Explorer gives him +7 Stealth and the sheet had nowhere to show it. Expertise implies proficiency; the sheet marks it with two dots, the edit form gets a checkbox list next to skill proficiencies. - Migration adds skill_expertise, backfilling existing rows with [] so the NOT NULL JSON column works on tables that already have characters. Tests: expertise math on the entity, and a catalog test that every seed sheet hydrates into a Character that passes validation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -60,8 +60,9 @@
|
||||
<thead><tr><th>Skill</th><th>Abl.</th><th>Mod</th></tr></thead>
|
||||
<tbody>
|
||||
{% for skill, ability in constant('App\\Entity\\Character::SKILLS') %}
|
||||
<tr class="{{ c.isProficientInSkill(skill) ? 'is-proficient' }}">
|
||||
<td>{{ skill }}{{ c.isProficientInSkill(skill) ? ' ●' }}</td>
|
||||
{% set proficient = c.isProficientInSkill(skill) or c.hasExpertiseInSkill(skill) %}
|
||||
<tr class="{{ proficient ? 'is-proficient' }}">
|
||||
<td>{{ skill }}{{ c.hasExpertiseInSkill(skill) ? ' ●●' : (proficient ? ' ●') }}</td>
|
||||
<td>{{ ability|slice(0, 3) }}</td>
|
||||
<td>{{ sb.mod(c.skillModifier(skill)) }}</td>
|
||||
</tr>
|
||||
|
||||
@@ -71,7 +71,8 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">{{ form_row(form.savingThrowProficiencies) }}</div>
|
||||
<div class="col-md-8">{{ form_row(form.skillProficiencies) }}</div>
|
||||
<div class="col-md-4">{{ form_row(form.skillProficiencies) }}</div>
|
||||
<div class="col-md-4">{{ form_row(form.skillExpertise) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user