# Monsters

[% for monster in monsters|sort(attribute='name') %]

## [[ monster.name ]]

[% if monster.description %]

[[ monster.description ]]

[% endif %]

Armor Class | Hit Points | Speed
--- | --- | ---
[[ monster.armor_class ]] | [[ monster.hp_max ]] ([[ monster.hit_dice ]]) | [[ monster.speed ]][% if monster.swim_speed %], [[ monster.swim_speed ]] swim[% endif %][% if monster.fly_speed %], [[ monster.fly_speed ]] fly[% endif %][% if monster.burrow_speed %], [[ monster.burrow_speed ]] burrow[% endif %]

STR | DEX | CON | INT | WIS | CHA
--- | --- | --- | --- | --- | ---
[[ monster.strength.value ]] | [[ monster.dexterity.value ]] | [[ monster.constitution.value ]] | [[ monster.intelligence.value ]] | [[ monster.wisdom.value ]] | [[ monster.charisma.value ]]
([[ monster.strength.modifier|mod_str ]]) | ([[ monster.dexterity.modifier|mod_str ]]) | ([[ monster.constitution.modifier|mod_str ]]) | ([[ monster.intelligence.modifier|mod_str ]]) | ([[ monster.wisdom.modifier|mod_str ]]) | ([[ monster.charisma.modifier|mod_str ]])

[% if monster.skills != "" %]
Skills
  [[ monster.skills ]]
[% endif %]
Senses
  [% if monster.senses != "" %][[ monster.senses ]][% else %]--[% endif %]
Languages
  [% if monster.languages != "" %][[ monster.languages ]][% else %]--[% endif %]
[% if monster.damage_resistances != "" %]
Damage Resistances
  [[ monster.damage_resistances ]]
[% endif %] [% if monster.damage_immunities != "" %]
Damage Immunities
  [[ monster.damage_immunities ]]
[% endif %] [% if monster.damage_vulnerabilities != "" %]
Damage Vulnerabilities
  [[ monster.damage_vulnerabilities ]]
[% endif %] [% if monster.condition_immunities != "" %]
Condition Immunuties
  [[ monster.condition_immunities ]]
[% endif %] [% if monster.saving_throws != "" %]
Saving Throws
  [[ monster.saving_throws ]]
[% endif %]
Challenge
  [[ monster.challenge_rating ]] ([[ monster.challenge_rating | challenge_rating_to_xp ]] XP)

[% if monster.spells | length > 0 %]

[% for level, spells in monster.spells | groupby('level') %]
[% if level == 0 %]Cantrips[% else %]Level [[ level ]][% endif %]
  [% for spell in spells %][% if not loop.first %], [% endif %] [[ spell.name ]][% endfor %]
[% endfor %]

[% endif %] [[ monster.__doc__ | rst_to_html(top_heading_level=2) ]]
[% endfor %]

# Monster Spells

[% from "spellblock.html" import spellblock %] [% for spell in spell_list | sort(attribute="name") %] [[ spellblock(spell, id_base="monster-spells") ]] [% endfor %]