Files
MonsterCards/rulesets/open5e/templates/stat_block.html

235 lines
7.7 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{display_name}} - Stat Block</title>
<link rel="stylesheet" href="stat_block.css">
</head>
<body class="stat-block-wrapper">
<div class="stat-block">
<!-- Header -->
<header class="sb-header">
<h1 class="sb-name">{{display_name}}</h1>
<div class="sb-type">
{{#if properties.size}}{{properties.size}}{{else}}Medium{{/if}}
{{#if properties.type}}{{properties.type}}{{else}}Humanoid{{/if}}{{#if properties.subtype}} ({{properties.subtype}}){{/if}},
{{#if properties.alignment}}{{properties.alignment}}{{else}}unaligned{{/if}}
</div>
</header>
<div class="red-bar"></div>
<!-- Core Vitals -->
<div class="sb-vitals">
<div class="vital-row">
<strong>Armor Class</strong> {{val properties.armor_class}}{{#if properties.armor_description}} ({{properties.armor_description}}){{/if}}
</div>
<div class="vital-row">
<strong>Hit Points</strong>
{{#if properties.hit_points.current}}
{{properties.hit_points.current}}
{{else if properties.hit_points.max}}
{{properties.hit_points.max}}
{{else}}
{{val properties.hit_points}}
{{/if}}
{{#if properties.hit_points.formula}}
({{properties.hit_points.formula}})
{{else if properties.hit_points.hit_dice}}
({{properties.hit_points.hit_dice}})
{{/if}}
</div>
<div class="vital-row">
<strong>Speed</strong>
{{#if properties.speed_desc}}
{{properties.speed_desc}}
{{else if properties.speed}}
{{properties.speed}} ft.
{{/if}}
</div>
</div>
<div class="red-bar"></div>
<!-- Ability Scores Table -->
<div class="sb-abilities">
<div class="sb-ability">
<span class="ab-label">STR</span>
<span class="ab-val">{{val properties.abilities.strength}} ({{modText properties.abilities.strength}})</span>
</div>
<div class="sb-ability">
<span class="ab-label">DEX</span>
<span class="ab-val">{{val properties.abilities.dexterity}} ({{modText properties.abilities.dexterity}})</span>
</div>
<div class="sb-ability">
<span class="ab-label">CON</span>
<span class="ab-val">{{val properties.abilities.constitution}} ({{modText properties.abilities.constitution}})</span>
</div>
<div class="sb-ability">
<span class="ab-label">INT</span>
<span class="ab-val">{{val properties.abilities.intelligence}} ({{modText properties.abilities.intelligence}})</span>
</div>
<div class="sb-ability">
<span class="ab-label">WIS</span>
<span class="ab-val">{{val properties.abilities.wisdom}} ({{modText properties.abilities.wisdom}})</span>
</div>
<div class="sb-ability">
<span class="ab-label">CHA</span>
<span class="ab-val">{{val properties.abilities.charisma}} ({{modText properties.abilities.charisma}})</span>
</div>
</div>
<div class="red-bar"></div>
<!-- Optional Monster Meta -->
<div class="sb-meta">
{{#if properties.saving_throws}}
<div class="meta-row">
<strong>Saving Throws</strong> {{join properties.saving_throws}}
</div>
{{/if}}
{{#if properties.skills}}
<div class="meta-row">
<strong>Skills</strong> {{join properties.skills}}
</div>
{{/if}}
{{#if properties.damage_vulnerabilities}}
<div class="meta-row">
<strong>Damage Vulnerabilities</strong> {{join properties.damage_vulnerabilities}}
</div>
{{/if}}
{{#if properties.damage_resistances}}
<div class="meta-row">
<strong>Damage Resistances</strong> {{join properties.damage_resistances}}
</div>
{{/if}}
{{#if properties.damage_immunities}}
<div class="meta-row">
<strong>Damage Immunities</strong> {{join properties.damage_immunities}}
</div>
{{/if}}
{{#if properties.condition_immunities}}
<div class="meta-row">
<strong>Condition Immunities</strong> {{join properties.condition_immunities}}
</div>
{{/if}}
{{#if properties.senses}}
<div class="meta-row">
<strong>Senses</strong> {{properties.senses}}
</div>
{{/if}}
{{#if properties.languages}}
<div class="meta-row">
<strong>Languages</strong> {{join properties.languages}}
</div>
{{/if}}
{{#if properties.challenge_rating}}
<div class="meta-row">
<strong>Challenge</strong> {{properties.challenge_rating}}
</div>
{{else if properties.cr}}
<div class="meta-row">
<strong>Challenge</strong> {{properties.cr}}{{#if properties.xp}} ({{properties.xp}} XP){{/if}}
</div>
{{/if}}
{{#if properties.proficiency_bonus}}
<div class="meta-row">
<strong>Proficiency Bonus</strong> +{{properties.proficiency_bonus}}
</div>
{{else if (calcProf properties.level properties.cr)}}
<div class="meta-row">
<strong>Proficiency Bonus</strong> +{{calcProf properties.level properties.cr}}
</div>
{{/if}}
</div>
<!-- Special Traits / Features -->
{{#if properties.traits}}
<div class="sb-traits">
{{#each properties.traits}}
<div class="trait-block">
<em><strong>{{this.name}}:</strong></em> {{formatText this.desc}}
</div>
{{/each}}
</div>
{{/if}}
<!-- Actions Section -->
{{#if properties.actions}}
<section class="sb-section">
<h2 class="section-title">Actions</h2>
<div class="section-divider"></div>
{{#each properties.actions}}
<div class="action-block">
<em><strong>{{this.name}}:</strong></em> {{formatText this.desc}}
</div>
{{/each}}
</section>
{{/if}}
<!-- Bonus Actions Section -->
{{#if properties.bonus_actions}}
<section class="sb-section">
<h2 class="section-title">Bonus Actions</h2>
<div class="section-divider"></div>
{{#each properties.bonus_actions}}
<div class="action-block">
<em><strong>{{this.name}}:</strong></em> {{formatText this.desc}}
</div>
{{/each}}
</section>
{{/if}}
<!-- Reactions Section -->
{{#if properties.reactions}}
<section class="sb-section">
<h2 class="section-title">Reactions</h2>
<div class="section-divider"></div>
{{#each properties.reactions}}
<div class="action-block">
<em><strong>{{this.name}}:</strong></em> {{formatText this.desc}}
</div>
{{/each}}
</section>
{{/if}}
<!-- Legendary Actions Section -->
{{#if properties.legendary_actions}}
<section class="sb-section">
<h2 class="section-title">Legendary Actions</h2>
<div class="section-divider"></div>
{{#if properties.legendary_actions.description}}
<p class="legendary-preamble">{{formatText properties.legendary_actions.description}}</p>
{{else if properties.legendariesDescription}}
<p class="legendary-preamble">{{formatText properties.legendariesDescription}}</p>
{{/if}}
{{#if properties.legendary_actions.actions}}
{{#each properties.legendary_actions.actions}}
<div class="action-block">
<em><strong>{{this.name}}:</strong></em> {{formatText this.desc}}
</div>
{{/each}}
{{else if properties.legendaries}}
{{#each properties.legendaries}}
<div class="action-block">
<em><strong>{{this.name}}:</strong></em> {{formatText this.desc}}
</div>
{{/each}}
{{/if}}
</section>
{{/if}}
</div>
</body>
</html>