weapon-modal.component.html 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <ngx-smart-modal
  2. #weaponModal
  3. identifier="weaponModal"
  4. id="weaponModal"
  5. (onAnyCloseEventFinished)="removeData()"
  6. (onOpenFinished)="checkIfUpdate()"
  7. >
  8. <div>
  9. <h2 style="text-align: center">Waffe hinzufügen</h2>
  10. <div class="add-form-group">
  11. <div class="input-element">
  12. <label for="weaponName">Name</label>
  13. <input
  14. type="text"
  15. class="add-input"
  16. id="weaponName"
  17. [(ngModel)]="newWeaponName"
  18. />
  19. </div>
  20. <div class="form-element-row">
  21. <div class="checkbox-element">
  22. <input type="checkbox" [(ngModel)]="newWeaponProficient" />
  23. <label for="weaponProficient">Geübt</label>
  24. </div>
  25. <div class="checkbox-element">
  26. <input type="checkbox" [(ngModel)]="newWeaponIsFinesse" />
  27. <label for="weaponFinesse">Finesse</label>
  28. </div>
  29. <div class="checkbox-element">
  30. <input type="checkbox" [(ngModel)]="newWeaponIsVersatile" />
  31. <label for="Vielseitig">Vielseitig</label>
  32. </div>
  33. <div class="checkbox-element">
  34. <input type="checkbox" [(ngModel)]="newWeaponIsTwoHanded" />
  35. <label for="weaponTwoHanded">Zweihändig</label>
  36. </div>
  37. <div class="checkbox-element">
  38. <input type="checkbox" [(ngModel)]="newWeaponIsRanged" />
  39. <label for="weaponRanged">Fernkampf</label>
  40. </div>
  41. <div class="checkbox-element">
  42. <select [(ngModel)]="newWeaponWeight">
  43. <option *ngFor="let weight of weights" [value]="weight">
  44. {{ weight }}
  45. </option>
  46. </select>
  47. <label>Gewicht</label>
  48. </div>
  49. <div class="checkbox-element">
  50. <input type="checkbox" [(ngModel)]="newWeaponCanBeThrown" />
  51. <label for="weaponRanged">Wurfwaffe</label>
  52. </div>
  53. <div class="checkbox-element">
  54. <input type="checkbox" [(ngModel)]="newWeaponIsMagical" />
  55. <label>Magisch</label>
  56. </div>
  57. </div>
  58. <div class="input-element">
  59. <label for="weaponAttackBonus">Angriffsbonus</label>
  60. <select [(ngModel)]="newWeaponAttackBonus">
  61. <option
  62. *ngFor="let attackBonus of attackBonuses"
  63. [value]="attackBonus"
  64. >
  65. {{ attackBonus }}
  66. </option>
  67. </select>
  68. </div>
  69. <div class="input-element" *ngIf="newWeaponIsMagical">
  70. <label>Magischer Modifikator</label>
  71. <select [(ngModel)]="newWeaponMagicBonus">
  72. <option
  73. *ngFor="let magicBonus of magicBonuses"
  74. [value]="magicBonus.value"
  75. >
  76. {{ magicBonus.display }}
  77. </option>
  78. </select>
  79. </div>
  80. <div class="input-element" *ngIf="newWeaponIsRanged">
  81. <label for="weaponRange">Reichweite</label>
  82. <input
  83. type="text"
  84. class="add-input"
  85. id="weaponRange"
  86. [(ngModel)]="newWeaponRange"
  87. />
  88. </div>
  89. <div class="input-element" *ngIf="newWeaponCanBeThrown">
  90. <label for="weaponRange">Wurfreichweite</label>
  91. <input
  92. type="text"
  93. class="add-input"
  94. id="weaponRange"
  95. [(ngModel)]="newWeaponThrowRange"
  96. />
  97. </div>
  98. <h3 style="text-align: center">Schaden</h3>
  99. <div class="damage-container">
  100. <div
  101. class="damage-box"
  102. *ngFor="let damage of newWeaponDamage; let index = index"
  103. >
  104. <div class="dice-row">
  105. <div class="flex-column">
  106. <label>Anzahl</label>
  107. <select [(ngModel)]="newWeaponDamage[index].diceNumber">
  108. <option *ngFor="let number of numbers" [value]="number">
  109. {{ number }}
  110. </option>
  111. </select>
  112. </div>
  113. <div class="flex-column">
  114. <label>Würfel</label>
  115. <select [(ngModel)]="newWeaponDamage[index].diceType">
  116. <option *ngFor="let die of dice" [value]="die">
  117. {{ die }}
  118. </option>
  119. </select>
  120. </div>
  121. </div>
  122. <div *ngIf="newWeaponIsVersatile && index === 0">
  123. Zweihändiger Schaden
  124. <div class="flex-row gap-10">
  125. <div class="flex-column">
  126. <label>Würfel</label>
  127. <select [(ngModel)]="newWeaponVersatileDamage">
  128. <option *ngFor="let die of dice" [value]="die">
  129. {{ die }}
  130. </option>
  131. </select>
  132. </div>
  133. </div>
  134. </div>
  135. <label for="damageType">Schadensart</label>
  136. <select [(ngModel)]="newWeaponDamage[index].damageType">
  137. <option *ngFor="let type of damageTypes" [value]="type.value">
  138. {{ type.display }}
  139. </option>
  140. </select>
  141. <icon
  142. *ngIf="index > 0"
  143. (click)="removeDamage(index)"
  144. [size]="'m'"
  145. [type]="'UI'"
  146. [icon]="'remove'"
  147. [class]="'pointer'"
  148. ></icon>
  149. </div>
  150. <icon
  151. *ngIf="newWeaponDamage.length < 3"
  152. (click)="addDamage()"
  153. [size]="'m'"
  154. [type]="'UI'"
  155. [icon]="'add'"
  156. [class]="'pointer'"
  157. ></icon>
  158. </div>
  159. <!-- <button *ngIf="!isUpdate" (click)="createWeapon()">Erstellen</button>
  160. <button *ngIf="isUpdate" (click)="updateWeapon()">Aktualisieren</button> -->
  161. <div class="button-wrapper">
  162. <ui-button
  163. *ngIf="isUpdate"
  164. [type]="'apply'"
  165. [size]="'xlarge'"
  166. [color]="'primary'"
  167. (click)="updateWeapon()"
  168. ></ui-button>
  169. <ui-button
  170. *ngIf="!isUpdate"
  171. [type]="'add'"
  172. [size]="'xlarge'"
  173. [color]="'primary'"
  174. (click)="createWeapon()"
  175. ></ui-button>
  176. <ui-button
  177. [type]="'dismiss'"
  178. [size]="'xlarge'"
  179. [color]="'primary'"
  180. (click)="dismiss()"
  181. ></ui-button>
  182. </div>
  183. </div>
  184. </div>
  185. </ngx-smart-modal>