|
@@ -95,9 +95,15 @@
|
|
|
<!-- COST -->
|
|
|
<ng-template #costTemplate let-spell="spell">
|
|
|
<div class="bold">
|
|
|
- <span *ngIf="spell.cost === 'action'">A</span>
|
|
|
- <span *ngIf="spell.cost === 'bonus'">B</span>
|
|
|
- <span *ngIf="spell.cost === 'reaction'">R</span>
|
|
|
+ @if (spell.cost === "action") {
|
|
|
+ <span>A</span>
|
|
|
+ }
|
|
|
+ @if (spell.cost === "bonus") {
|
|
|
+ <span>B</span>
|
|
|
+ }
|
|
|
+ @if (spell.cost === "reaction") {
|
|
|
+ <span>R</span>
|
|
|
+ }
|
|
|
</div>
|
|
|
</ng-template>
|
|
|
|
|
@@ -112,18 +118,18 @@
|
|
|
}
|
|
|
</div>
|
|
|
<div class="bold small">
|
|
|
- <span *ngIf="spell.needsConcentration"
|
|
|
- >{{ "spells.concentrationAbbr" | translate }} |
|
|
|
- </span>
|
|
|
- <span *ngIf="spell.needsVerbal"
|
|
|
- >{{ "spells.components.verbal" | translate }}
|
|
|
- </span>
|
|
|
- <span *ngIf="spell.needsSomatic"
|
|
|
- >{{ "spells.components.somatic" | translate }}
|
|
|
- </span>
|
|
|
- <span *ngIf="spell.needsMaterial"
|
|
|
- >{{ "spells.components.material" | translate }}
|
|
|
- </span>
|
|
|
+ @if (spell.needsConcentration) {
|
|
|
+ <span>{{ "spells.concentrationAbbr" | translate }} | </span>
|
|
|
+ }
|
|
|
+ @if (spell.needsVerbal) {
|
|
|
+ <span>{{ "spells.components.verbal" | translate }} </span>
|
|
|
+ }
|
|
|
+ @if (spell.needsSomatic) {
|
|
|
+ <span>{{ "spells.components.somatic" | translate }} </span>
|
|
|
+ }
|
|
|
+ @if (spell.needsMaterial) {
|
|
|
+ <span>{{ "spells.components.material" | translate }} </span>
|
|
|
+ }
|
|
|
<div></div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -131,27 +137,37 @@
|
|
|
|
|
|
<!-- Level -->
|
|
|
<ng-template #spellLevelTemplate let-spell="spell">
|
|
|
- <div *ngIf="spell.level !== 0" class="bold">{{ spell.level }}</div>
|
|
|
- <div *ngIf="spell.level === 0" class="bold">
|
|
|
- {{ "spells.cantrip" | translate }}
|
|
|
- </div>
|
|
|
+ @if (spell.level !== 0) {
|
|
|
+ <div class="bold">{{ spell.level }}</div>
|
|
|
+ }
|
|
|
+ @if (spell.level === 0) {
|
|
|
+ <div class="bold">
|
|
|
+ {{ "spells.cantrip" | translate }}
|
|
|
+ </div>
|
|
|
+ }
|
|
|
</ng-template>
|
|
|
|
|
|
<!-- Attack -->
|
|
|
<ng-template #spellAttackTemplate let-spell="spell">
|
|
|
<div>
|
|
|
- <div *ngIf="spell.needsSavingThrow">
|
|
|
+ @if (spell.needsSavingThrow) {
|
|
|
<div>
|
|
|
- {{
|
|
|
- "attributesAbbreviations." + spell.savingThrowAttribute | translate
|
|
|
- }}
|
|
|
+ <div>
|
|
|
+ {{
|
|
|
+ "attributesAbbreviations." + spell.savingThrowAttribute | translate
|
|
|
+ }}
|
|
|
+ </div>
|
|
|
+ <div>{{ spellSaveDC }}</div>
|
|
|
</div>
|
|
|
- <div>{{ spellSaveDC }}</div>
|
|
|
- </div>
|
|
|
- <div *ngIf="spell.needsAttackRoll">
|
|
|
- <div>{{ spellAttackBonus }}</div>
|
|
|
- </div>
|
|
|
- <div *ngIf="!spell.needsSavingThrow && !spell.needsAttackRoll">-</div>
|
|
|
+ }
|
|
|
+ @if (spell.needsAttackRoll) {
|
|
|
+ <div>
|
|
|
+ <div>{{ spellAttackBonus }}</div>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ @if (!spell.needsSavingThrow && !spell.needsAttackRoll) {
|
|
|
+ <div>-</div>
|
|
|
+ }
|
|
|
</div>
|
|
|
</ng-template>
|
|
|
|
|
@@ -159,19 +175,21 @@
|
|
|
<ng-template #spellDamageTemplate let-spell="spell">
|
|
|
<div>
|
|
|
@if (spell.doesDamage) {
|
|
|
- <div *ngFor="let damage of spell.damage; let index = index">
|
|
|
- <span>
|
|
|
- {{ damage.diceNumber }}
|
|
|
- {{ "general.dice" | translate }}{{ damage.diceType }}
|
|
|
- </span>
|
|
|
- <span>
|
|
|
- <icon
|
|
|
- [size]="'m'"
|
|
|
- [type]="'damage'"
|
|
|
- [icon]="damage.damageType"
|
|
|
- ></icon>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
+ @for (damage of spell.damage; track damage; let index = $index) {
|
|
|
+ <div>
|
|
|
+ <span>
|
|
|
+ {{ damage.diceNumber }}
|
|
|
+ {{ "general.dice" | translate }}{{ damage.diceType }}
|
|
|
+ </span>
|
|
|
+ <span>
|
|
|
+ <icon
|
|
|
+ [size]="'m'"
|
|
|
+ [type]="'damage'"
|
|
|
+ [icon]="damage.damageType"
|
|
|
+ ></icon>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
}
|
|
|
@if (spell.doesHeal) {
|
|
|
<div class="heal">
|
|
@@ -179,9 +197,9 @@
|
|
|
>{{ spell.heal.diceNumber }} {{ "general.dice" | translate
|
|
|
}}{{ spell.heal.diceType }}
|
|
|
</span>
|
|
|
- <span *ngIf="spell.heal.additionalHeal"
|
|
|
- >+{{ spell.heal.additionalHeal }}
|
|
|
- </span>
|
|
|
+ @if (spell.heal.additionalHeal) {
|
|
|
+ <span>+{{ spell.heal.additionalHeal }} </span>
|
|
|
+ }
|
|
|
<span>
|
|
|
<icon [size]="'xs'" [type]="'damage'" [icon]="'heal'"></icon>
|
|
|
</span>
|
|
@@ -193,16 +211,22 @@
|
|
|
<!-- Range -->
|
|
|
<ng-template #spellRangeTemplate let-spell="spell">
|
|
|
<div class="spell-range">
|
|
|
- <div *ngIf="spell.isRanged">{{ spell.range }} ft.</div>
|
|
|
- <div *ngIf="!spell.isRanged && spell.range !== 0">
|
|
|
- {{ "spells.touch" | translate }}
|
|
|
- </div>
|
|
|
+ @if (spell.isRanged) {
|
|
|
+ <div>{{ spell.range }} ft.</div>
|
|
|
+ }
|
|
|
+ @if (!spell.isRanged && spell.range !== 0) {
|
|
|
+ <div>
|
|
|
+ {{ "spells.touch" | translate }}
|
|
|
+ </div>
|
|
|
+ }
|
|
|
|
|
|
- <div *ngIf="spell.hasAreaOfEffect">
|
|
|
- <span
|
|
|
- >{{ spell.diameter }} ft.
|
|
|
- {{ "areaTypes." + spell.areaOfEffectType | translate }}</span
|
|
|
- >
|
|
|
- </div>
|
|
|
+ @if (spell.hasAreaOfEffect) {
|
|
|
+ <div>
|
|
|
+ <span
|
|
|
+ >{{ spell.diameter }} ft.
|
|
|
+ {{ "areaTypes." + spell.areaOfEffectType | translate }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ }
|
|
|
</div>
|
|
|
</ng-template>
|