{{localize "PF2E.Actor.Character.AttributeBuilder.Title"}}

{{#each attributeModifiers as |attribute key|}}

{{localize (concat "PF2E.AbilityId." key)}}

{{/each}}
{{#if ancestryBoosts}}
{{#if ancestryBoosts.remaining}}
{{ancestryBoosts.remaining}}
{{/if}} {{ancestry.name}}
{{localize "TYPES.Item.ancestry"}}
{{ancestry.name}}
{{else}}
{{localize "TYPES.Item.ancestry"}}
{{localize "PF2E.Actor.Character.AttributeBuilder.NotSelected"}}
{{/if}} {{> attributeRow buttons=ancestryBoosts.buttons fallback="PF2E.Actor.Character.AttributeBuilder.AncestryMissingHelp"}}

{{localize "PF2E.Actor.Character.AttributeBuilder.Boosts"}}

    {{#each ancestryBoosts.labels as |boost|}}
  • {{boost}}
  • {{/each}}

{{localize "PF2E.Actor.Character.AttributeBuilder.Flaws"}}

    {{#each ancestryBoosts.flawLabels as |flaw|}}
  • {{flaw}}
  • {{/each}}
{{#if ancestry}}
{{#if voluntaryFlaws.remaining}}
{{voluntaryFlaws.remaining}}
{{/if}}
{{localize "PF2E.Actor.Character.AttributeBuilder.VoluntaryFlaw.Title"}}
{{> attributeRow buttons=voluntaryFlaws.buttons}} {{/if}}

{{#if backgroundBoosts}}
{{#if backgroundBoosts.remaining}}
{{backgroundBoosts.remaining}}
{{/if}} {{background.name}}
{{localize "PF2E.Background"}}
{{background.name}}
{{else}}
{{localize "TYPES.Item.background"}}
{{localize "PF2E.Actor.Character.AttributeBuilder.NotSelected"}}
{{/if}} {{> attributeRow buttons=backgroundBoosts.buttons fallback="PF2E.Actor.Character.AttributeBuilder.BackgroundMissingHelp"}}
{{#if backgroundBoosts.tooltip}} {{backgroundBoosts.tooltip}} {{else}}

{{localize "PF2E.Actor.Character.AttributeBuilder.Boosts"}}

    {{#each backgroundBoosts.labels as |boost|}} {{#if boost}}
  • {{boost}}
  • {{/if}} {{/each}}
{{/if}}

{{#if class}}
{{class.name}}
{{localize "TYPES.Item.class"}}
{{class.name}}
{{#each attributes as |key attribute|}}
{{/each}}
{{else}}
{{localize "TYPES.Item.class"}}
{{localize "PF2E.Actor.Character.AttributeBuilder.NotSelected"}}
{{localize "PF2E.Actor.Character.AttributeBuilder.ClassMissingHelp"}}
{{/if}}

{{localize "PF2E.AbilityFree"}}
{{#each levelBoosts as |boosts|}}
{{#if remaining}}
{{remaining}}
{{/if}}
{{~#if (eq boosts.level 17)~}} {{localize "PF2E.TraitApex"}} {{~else if (eq boosts.minLevel boosts.level)~}} {{localize "PF2E.LevelN" level=boosts.level}} {{~else~}} {{localize "PF2E.LevelRange" minLevel=boosts.minLevel level=boosts.level}} {{~/if~}}
{{> attributeRow buttons=boosts.buttons isApex=boosts.isApex}}
{{/each}}
{{#each attributeModifiers as |attribute key|}}
{{#if ../manual}} {{else}}
{{attribute.mod}}
{{/if}}

{{localize attribute.label}}

{{/each}}
{{#*inline "attributeRow"}} {{#if buttons}}
{{#each buttons as |state|}}
{{#if ../isApex}} {{> boostButton type="apex" attribute=state.ability button=state.boost}} {{else}} {{#if flaw}} {{> boostButton type="flaw" attribute=state.ability button=state.flaw}} {{/if}} {{#if boost}} {{> boostButton type="boost" attribute=state.ability button=state.boost}} {{/if}} {{/if}}
{{/each}}
{{else if fallback}}
{{localize fallback}}
{{/if}} {{/inline}} {{#*inline "boostButton"}} {{#if button.second}}
{{> boostButtonSingle button=button type=type number="first"}} {{> boostButtonSingle button=button.second type=type number="second"}}
{{else}} {{> boostButtonSingle button=button type=type}} {{/if}} {{#*inline "boostButtonSingle"}} {{/inline}} {{/inline}}