full-spellcard.component.html 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <div class="full-spellcard-container">
  2. <div class="full-spellcard">
  3. <h2 style="text-align: center; margin-top: 1rem">{{ spell.german }}</h2>
  4. <table class="table table-striped" style="height: 20rem; overflow: auto">
  5. <thead>
  6. <tr>
  7. <th scope="col">Property</th>
  8. <th scope="col">Value</th>
  9. </tr>
  10. </thead>
  11. <tbody>
  12. <tr>
  13. <td>Komponenten:</td>
  14. <td>
  15. @if (spell.needsVerbal) {
  16. Verbal
  17. }
  18. @if (spell.needsSomatic) {
  19. , Somatic
  20. }
  21. @if (spell.needsMaterial) {
  22. , Material
  23. }
  24. </td>
  25. </tr>
  26. <tr>
  27. <td>Stufe</td>
  28. <td>{{ spell.level }}</td>
  29. </tr>
  30. <tr>
  31. <td>Kosten</td>
  32. <td>{{ spell.cost }}</td>
  33. </tr>
  34. <tr>
  35. <td>Kann als Ritual gewirkt werden</td>
  36. <td>{{ spell.canRitual }}</td>
  37. </tr>
  38. <tr>
  39. <td>Wirkungsdauer</td>
  40. <td>
  41. {{ spell.duration }}
  42. {{ "duration." + spell.durationType | translate }}
  43. </td>
  44. </tr>
  45. <tr></tr>
  46. <tr>
  47. <td>Benötigt Konzentration</td>
  48. <td>{{ spell.needsConcentration }}</td>
  49. </tr>
  50. <tr>
  51. <td>Schule</td>
  52. <td>{{ spell.school }}</td>
  53. </tr>
  54. <tr>
  55. <td>Reichweite</td>
  56. @if (spell.isRanged) {
  57. <td>{{ spell.range }}</td>
  58. } @else {
  59. <td>Berührung</td>
  60. }
  61. </tr>
  62. @if (spell.hasAreaOfEffect) {
  63. <tr>
  64. <td>Flächeneffekt</td>
  65. <td>{{ spell.areaOfEffectType }}</td>
  66. </tr>
  67. <tr>
  68. <td>Durchmesser</td>
  69. <td>{{ spell.diameter }}</td>
  70. </tr>
  71. }
  72. @if (spell.needsAttackRoll) {
  73. <tr>
  74. <td>Benötigt Angriffswurf</td>
  75. <td>{{ spell.needsAttackRoll }}</td>
  76. </tr>
  77. }
  78. @if (spell.needsSavingThrow) {
  79. <tr>
  80. <td>Benötigt Rettungswurf</td>
  81. <td>{{ spell.needsSavingThrow }}</td>
  82. </tr>
  83. <tr>
  84. <td>Rettungswurfattribut</td>
  85. <td>{{ spell.savingThrowAttribute }}</td>
  86. </tr>
  87. }
  88. @if (spell.doesDamage) {
  89. <tr>
  90. <td>Schaden</td>
  91. <td>
  92. @for (damage of spell.damage; track damage) {
  93. {{ damage.diceNumber }} {{ "general.dice" | translate
  94. }}{{ damage.diceType }}
  95. {{ damage.damageType }}
  96. @if (damage.additionalDamage) {
  97. + {{ damage.additionalDamage }}
  98. }
  99. <br />
  100. }
  101. </td>
  102. </tr>
  103. }
  104. @if (spell.doesHeal) {
  105. <tr>
  106. <td>Heilung</td>
  107. <td>
  108. {{ spell.heal.diceNumber }} {{ spell.heal.diceType }}
  109. @if (spell.heal.additionalHeal) {
  110. + {{ spell.heal.additionalHeal }}
  111. }
  112. </td>
  113. </tr>
  114. }
  115. <h3>Beschreibung</h3>
  116. <div [innerHTML]="spell.description_de"></div>
  117. </tbody>
  118. </table>
  119. </div>
  120. <div class="delete-row">
  121. @if (isFromDashboard) {
  122. <button class="delete-button" (click)="remove()">Entfernen</button>
  123. } @else {
  124. <!-- Add to favorites -->
  125. <button
  126. [class]="alreadyInFavorites ? 'disabled add-button' : 'add-button'"
  127. (click)="alreadyInFavorites ? '' : addToFavorites()"
  128. >
  129. @if (alreadyInFavorites) {
  130. Bereits in Favoriten
  131. } @else {
  132. Zu Favoriten hinzufügen
  133. }
  134. </button>
  135. <!-- Modify spell (only available for custom spells) -->
  136. @if (spell.isCustom) {
  137. <button class="edit-button" (click)="update()">Anpassen</button>
  138. }
  139. <button class="delete-button" (click)="remove()">Entfernen</button>
  140. @if (spell.isCustom) {
  141. <button class="delete-button" (click)="delete()">Löschen</button>
  142. }
  143. }
  144. </div>
  145. </div>