|
@@ -1,200 +1,270 @@
|
|
|
-<div class="modal-dimensions">
|
|
|
- <h2 style="text-align: center">
|
|
|
+<div class="dimensions">
|
|
|
+ <div class="title">
|
|
|
@if(isUpdate){Waffe bearbeiten} @else{Waffe hinzufügen}
|
|
|
- </h2>
|
|
|
-
|
|
|
- <div class="add-form-group">
|
|
|
- <div class="input-element">
|
|
|
- <label for="weaponName">Name</label>
|
|
|
- <input type="text" class="add-input" id="weaponName" [(ngModel)]="name" />
|
|
|
- </div>
|
|
|
- <div class="form-element-row">
|
|
|
- <div class="checkbox-element">
|
|
|
- <input type="checkbox" [(ngModel)]="proficient" />
|
|
|
- <label for="weaponProficient">Geübt</label>
|
|
|
- </div>
|
|
|
- <div class="checkbox-element">
|
|
|
- <input type="checkbox" [(ngModel)]="isFinesse" />
|
|
|
- <label for="weaponFinesse">Finesse</label>
|
|
|
- </div>
|
|
|
- <div class="checkbox-element">
|
|
|
- <input type="checkbox" [(ngModel)]="isVersatile" />
|
|
|
- <label for="Vielseitig">Vielseitig</label>
|
|
|
- </div>
|
|
|
- <div class="checkbox-element">
|
|
|
- <input type="checkbox" [(ngModel)]="isTwoHanded" />
|
|
|
- <label for="weaponTwoHanded">Zweihändig</label>
|
|
|
- </div>
|
|
|
- <div class="checkbox-element">
|
|
|
- <input type="checkbox" [(ngModel)]="isRanged" />
|
|
|
- <label for="weaponRanged">Fernkampf</label>
|
|
|
- </div>
|
|
|
- <div class="checkbox-element">
|
|
|
- <select [(ngModel)]="weight">
|
|
|
- <option *ngFor="let weight of weights" [value]="weight">
|
|
|
- {{ weight }}
|
|
|
- </option>
|
|
|
- </select>
|
|
|
- <label>Gewicht</label>
|
|
|
- </div>
|
|
|
- <div class="checkbox-element">
|
|
|
- <input type="checkbox" [(ngModel)]="canBeThrown" />
|
|
|
- <label for="weaponRanged">Wurfwaffe</label>
|
|
|
- </div>
|
|
|
- <div class="checkbox-element">
|
|
|
- <input type="checkbox" [(ngModel)]="isMagical" />
|
|
|
- <label>Magisch</label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
|
|
|
- <div class="input-element">
|
|
|
- <label for="weaponAttackBonus">Angriffsbonus</label>
|
|
|
- <select [(ngModel)]="attackBonus">
|
|
|
- <option *ngFor="let attackBonus of attackBonuses" [value]="attackBonus">
|
|
|
- {{ attackBonus }}
|
|
|
- </option>
|
|
|
- </select>
|
|
|
- </div>
|
|
|
+ <div class="content">
|
|
|
+ <div class="input-label">Name</div>
|
|
|
+ <mat-form-field appearance="outline" class="w-100">
|
|
|
+ <input matInput [(ngModel)]="name" />
|
|
|
+ </mat-form-field>
|
|
|
+ <hr />
|
|
|
|
|
|
- <div class="input-element" *ngIf="isMagical">
|
|
|
- <label>Magischer Modifikator</label>
|
|
|
- <select [(ngModel)]="magicBonus">
|
|
|
- <option
|
|
|
- *ngFor="let magicBonus of magicBonuses"
|
|
|
- [value]="magicBonus.value"
|
|
|
- >
|
|
|
- {{ magicBonus.display }}
|
|
|
- </option>
|
|
|
- </select>
|
|
|
- </div>
|
|
|
+ <div class="flex-row t-1">
|
|
|
+ <div class="checkbox-column">
|
|
|
+ <div class="checkbox-row">
|
|
|
+ <input id="proficient" type="checkbox" [(ngModel)]="proficient" />
|
|
|
+ <label for="proficient">Geübt</label>
|
|
|
+ </div>
|
|
|
+ <div class="checkbox-row">
|
|
|
+ <input id="finesse" type="checkbox" [(ngModel)]="isFinesse" />
|
|
|
+ <label for="finesse">Finesse</label>
|
|
|
+ </div>
|
|
|
+ <div class="checkbox-row">
|
|
|
+ <input id="versatile" type="checkbox" [(ngModel)]="isVersatile" />
|
|
|
+ <label for="versatile">Vielseitig</label>
|
|
|
+ </div>
|
|
|
+ <div class="checkbox-row">
|
|
|
+ <input id="isTwohanded" type="checkbox" [(ngModel)]="isTwoHanded" />
|
|
|
+ <label for="isTwohanded">Zweihändig</label>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="checkbox-column">
|
|
|
+ <div class="checkbox-row">
|
|
|
+ <input id="hasReach" type="checkbox" [(ngModel)]="hasReach" />
|
|
|
+ <label for="hasReach">Reichweite</label>
|
|
|
+ </div>
|
|
|
+ <div class="checkbox-row">
|
|
|
+ <input id="isRanged" type="checkbox" [(ngModel)]="isRanged" />
|
|
|
+ <label for="isRanged">Fernkampf</label>
|
|
|
+ </div>
|
|
|
|
|
|
- <div class="input-element" *ngIf="isRanged">
|
|
|
- <label for="weaponRange">Normale Reichweite</label>
|
|
|
- <input
|
|
|
- type="number"
|
|
|
- class="add-input"
|
|
|
- id="weaponRange"
|
|
|
- [(ngModel)]="range[0]"
|
|
|
- />
|
|
|
+ <div class="checkbox-row">
|
|
|
+ <input id="canBeThrown" type="checkbox" [(ngModel)]="canBeThrown" />
|
|
|
+ <label for="canBeThrown">Wurfwaffe</label>
|
|
|
+ </div>
|
|
|
+ <div class="checkbox-row">
|
|
|
+ <input id="isMagical" type="checkbox" [(ngModel)]="isMagical" />
|
|
|
+ <label for="isMagical">Magisch</label>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="input-element" *ngIf="isRanged">
|
|
|
- <label for="weaponRange">Große Reichweite</label>
|
|
|
- <input
|
|
|
- type="number"
|
|
|
- class="add-input"
|
|
|
- id="weaponRange"
|
|
|
- [(ngModel)]="range[1]"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <hr />
|
|
|
|
|
|
- <div class="input-element" *ngIf="canBeThrown">
|
|
|
- <label for="weaponRange">Normale Wurfreichweite</label>
|
|
|
- <input
|
|
|
- type="number"
|
|
|
- class="add-input"
|
|
|
- id="weaponRange"
|
|
|
- [(ngModel)]="throwRange[0]"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <!-- TAB-PANEL -->
|
|
|
+ <div class="d-flex">
|
|
|
+ <div
|
|
|
+ ngbNav
|
|
|
+ #nav="ngbNav"
|
|
|
+ [(activeId)]="active"
|
|
|
+ class="flex-column navigation-bar"
|
|
|
+ orientation="vertical"
|
|
|
+ >
|
|
|
+ <ng-container ngbNavItem="damage">
|
|
|
+ <button ngbNavLink>Schaden</button>
|
|
|
+ <ng-template ngbNavContent>
|
|
|
+ <div class="flex-row">
|
|
|
+ <div class="w-50">
|
|
|
+ <div class="input-label">Angriffsbonus</div>
|
|
|
+ <mat-form-field appearance="outline">
|
|
|
+ <mat-select [(ngModel)]="attackBonus">
|
|
|
+ @for (attackBonus of attackBonuses; track attackBonus) {
|
|
|
+ <mat-option [value]="attackBonus">{{
|
|
|
+ attackBonus
|
|
|
+ }}</mat-option
|
|
|
+ >}
|
|
|
+ </mat-select>
|
|
|
+ </mat-form-field>
|
|
|
+ </div>
|
|
|
|
|
|
- <div class="input-element" *ngIf="canBeThrown">
|
|
|
- <label for="weaponRange">Große Wurfreichweite</label>
|
|
|
- <input
|
|
|
- type="number"
|
|
|
- class="add-input"
|
|
|
- id="weaponRange"
|
|
|
- [(ngModel)]="throwRange[1]"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <div *ngIf="isMagical">
|
|
|
+ <div class="input-label">Magischer Modifikator</div>
|
|
|
+ <mat-form-field appearance="outline">
|
|
|
+ <mat-select [(ngModel)]="magicBonus">
|
|
|
+ @for (magicBonus of magicBonuses; track magicBonus) {
|
|
|
+ <mat-option [value]="magicBonus.value">
|
|
|
+ {{ magicBonus.display }} </mat-option
|
|
|
+ >}
|
|
|
+ </mat-select>
|
|
|
+ </mat-form-field>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
- <h3 style="text-align: center">Schaden</h3>
|
|
|
+ <div class="flex-row t-05">
|
|
|
+ @for(damageEntry of damage; let index = $index; track
|
|
|
+ damageEntry){
|
|
|
|
|
|
- <div class="damage-container">
|
|
|
- <div class="damage-box" *ngFor="let damage of damage; let index = index">
|
|
|
- <div class="dice-row">
|
|
|
- <div class="flex-column">
|
|
|
- <label>Anzahl</label>
|
|
|
- <select [(ngModel)]="damage.diceNumber">
|
|
|
- <option *ngFor="let number of numbers" [value]="number">
|
|
|
- {{ number }}
|
|
|
- </option>
|
|
|
- </select>
|
|
|
- </div>
|
|
|
+ <div class="damage-box">
|
|
|
+ <div class="subheading left t-025">
|
|
|
+ @if(index == 0){Schaden} @else {Zusatzschaden}
|
|
|
+ </div>
|
|
|
+ <div class="input-label">Anzahl Würfel</div>
|
|
|
+ <mat-form-field appearance="outline">
|
|
|
+ <mat-select [(ngModel)]="damageEntry.diceNumber">
|
|
|
+ @for (number of numbers; track number) {
|
|
|
+ <mat-option [value]="number"> {{ number }} </mat-option>}
|
|
|
+ </mat-select>
|
|
|
+ </mat-form-field>
|
|
|
|
|
|
- <div class="flex-column">
|
|
|
- <label>Würfel</label>
|
|
|
- <select [(ngModel)]="damage.diceType">
|
|
|
- <option *ngFor="let die of dice" [value]="die">
|
|
|
- {{ die }}
|
|
|
- </option>
|
|
|
- </select>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="input-label t-05">
|
|
|
+ Würfelart @if(isVersatile && index === 0){ (Einhändig)}
|
|
|
+ </div>
|
|
|
+ <mat-form-field appearance="outline">
|
|
|
+ <mat-select [(ngModel)]="damageEntry.diceType">
|
|
|
+ @for (die of dice; track die) {
|
|
|
+ <mat-option [value]="die"> {{ die }} </mat-option>}
|
|
|
+ </mat-select>
|
|
|
+ </mat-form-field>
|
|
|
+ @if(isVersatile && index === 0){
|
|
|
+ <div class="input-label t-05">Würfelart (Zweihändig)</div>
|
|
|
+ <mat-form-field appearance="outline">
|
|
|
+ <mat-select [(ngModel)]="versatileDamage">
|
|
|
+ @for (die of dice; track die) {
|
|
|
+ <mat-option [value]="die"> {{ die }} </mat-option>}
|
|
|
+ </mat-select>
|
|
|
+ </mat-form-field>
|
|
|
+ }
|
|
|
|
|
|
- <div *ngIf="isVersatile && index === 0">
|
|
|
- Zweihändiger Schaden
|
|
|
- <div class="flex-row gap-10">
|
|
|
- <div class="flex-column">
|
|
|
- <label>Würfel</label>
|
|
|
- <select [(ngModel)]="versatileDamage">
|
|
|
- <option *ngFor="let die of dice" [value]="die">
|
|
|
- {{ die }}
|
|
|
- </option>
|
|
|
- </select>
|
|
|
+ <div class="input-label t-05">Schadensart</div>
|
|
|
+ <mat-form-field appearance="outline">
|
|
|
+ <mat-select [(ngModel)]="damageEntry.damageType">
|
|
|
+ @for (type of damageTypes; track type) {
|
|
|
+ <mat-option [value]="type.value">
|
|
|
+ {{ type.display }}
|
|
|
+ </mat-option>
|
|
|
+ }
|
|
|
+ </mat-select>
|
|
|
+ </mat-form-field>
|
|
|
+ @if(index !== 0){
|
|
|
+ <icon-button
|
|
|
+ [icon]="'delete'"
|
|
|
+ (click)="removeDamage(index)"
|
|
|
+ ></icon-button>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ @if(damage.length < 2){
|
|
|
+ <icon-button
|
|
|
+ [icon]="'add'"
|
|
|
+ style="margin-top: 7rem; margin-left: 5rem"
|
|
|
+ (click)="addDamage()"
|
|
|
+ ></icon-button>
|
|
|
+ } }
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <label for="damageType">Schadensart</label>
|
|
|
- <select [(ngModel)]="damage.damageType">
|
|
|
- <option *ngFor="let type of damageTypes" [value]="type.value">
|
|
|
- {{ type.display }}
|
|
|
- </option>
|
|
|
- </select>
|
|
|
-
|
|
|
- <icon
|
|
|
- *ngIf="index > 0"
|
|
|
- (click)="removeDamage(index)"
|
|
|
- [size]="'m'"
|
|
|
- [type]="'UI'"
|
|
|
- [icon]="'remove'"
|
|
|
- [class]="'pointer'"
|
|
|
- ></icon>
|
|
|
+ </ng-template>
|
|
|
+ </ng-container>
|
|
|
+ <ng-container ngbNavItem="range">
|
|
|
+ @if(isRanged || canBeThrown){
|
|
|
+ <button ngbNavLink>Reichweite</button>
|
|
|
+ } @else {
|
|
|
+ <button class="disabled-button" disabled>Reichweite</button>
|
|
|
+ }
|
|
|
+ <ng-template ngbNavContent>
|
|
|
+ <div class="numbers">
|
|
|
+ @if(isRanged){
|
|
|
+ <div class="flex-row t-1">
|
|
|
+ <div class="w-50">
|
|
|
+ <div class="input-label">Normale Reichweite</div>
|
|
|
+ <mat-form-field appearance="outline">
|
|
|
+ <input
|
|
|
+ class="right"
|
|
|
+ type="number"
|
|
|
+ matInput
|
|
|
+ [(ngModel)]="range[0]"
|
|
|
+ />
|
|
|
+ <span class="input-value" matTextSuffix>Fuß</span>
|
|
|
+ </mat-form-field>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class="input-label">Erweiterte Reichweite</div>
|
|
|
+ <mat-form-field appearance="outline">
|
|
|
+ <input
|
|
|
+ class="right"
|
|
|
+ type="number"
|
|
|
+ matInput
|
|
|
+ [(ngModel)]="range[1]"
|
|
|
+ />
|
|
|
+ <span class="input-value" matTextSuffix>Fuß</span>
|
|
|
+ </mat-form-field>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ } @if(canBeThrown){
|
|
|
+ <div class="flex-row t-2">
|
|
|
+ <div class="w-50">
|
|
|
+ <div class="input-label">Normale Wurfreichweite</div>
|
|
|
+ <mat-form-field appearance="outline">
|
|
|
+ <input
|
|
|
+ class="right"
|
|
|
+ type="number"
|
|
|
+ matInput
|
|
|
+ [(ngModel)]="throwRange[0]"
|
|
|
+ />
|
|
|
+ <span class="input-value" matTextSuffix>Fuß</span>
|
|
|
+ </mat-form-field>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class="input-label">Erweiterte Wurfreichweite</div>
|
|
|
+ <mat-form-field appearance="outline">
|
|
|
+ <input
|
|
|
+ class="right"
|
|
|
+ type="number"
|
|
|
+ matInput
|
|
|
+ [(ngModel)]="throwRange[1]"
|
|
|
+ />
|
|
|
+ <span class="input-value" matTextSuffix>Fuß</span>
|
|
|
+ </mat-form-field>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ </ng-template>
|
|
|
+ </ng-container>
|
|
|
+ <ng-container ngbNavItem="description">
|
|
|
+ <button ngbNavLink>Beschreibung</button>
|
|
|
+ <ng-template ngbNavContent>
|
|
|
+ <div class="NgxEditor__Wrapper">
|
|
|
+ <ngx-editor-menu [editor]="editor" [toolbar]="toolbar">
|
|
|
+ </ngx-editor-menu>
|
|
|
+ <ngx-editor
|
|
|
+ [editor]="editor"
|
|
|
+ [(ngModel)]="description"
|
|
|
+ placeholder="Beschreibung der Waffe"
|
|
|
+ ></ngx-editor>
|
|
|
+ </div>
|
|
|
+ </ng-template>
|
|
|
+ </ng-container>
|
|
|
</div>
|
|
|
- <icon
|
|
|
- *ngIf="damage.length < 3"
|
|
|
- (click)="addDamage()"
|
|
|
- [size]="'m'"
|
|
|
- [type]="'UI'"
|
|
|
- [icon]="'add'"
|
|
|
- [class]="'pointer'"
|
|
|
- ></icon>
|
|
|
- </div>
|
|
|
|
|
|
- <div class="button-wrapper-2-block">
|
|
|
- @if(isUpdate){
|
|
|
- <ui-button
|
|
|
- [type]="'update'"
|
|
|
- [size]="'xlarge'"
|
|
|
- [color]="'primary'"
|
|
|
- (click)="update()"
|
|
|
- ></ui-button>
|
|
|
- }@else{
|
|
|
- <ui-button
|
|
|
- *ngIf="!isUpdate"
|
|
|
- [type]="'add'"
|
|
|
- [size]="'xlarge'"
|
|
|
- [color]="'primary'"
|
|
|
- (click)="add()"
|
|
|
- ></ui-button>
|
|
|
- }
|
|
|
- <ui-button
|
|
|
- [type]="'cancel'"
|
|
|
- [size]="'xlarge'"
|
|
|
- [color]="'primary'"
|
|
|
- (click)="cancel()"
|
|
|
- ></ui-button>
|
|
|
+ <div
|
|
|
+ [ngbNavOutlet]="nav"
|
|
|
+ style="
|
|
|
+ width: 100%;
|
|
|
+ min-height: 20rem;
|
|
|
+ max-height: 26rem;
|
|
|
+ overflow-y: auto;
|
|
|
+ overflow-x: hidden;
|
|
|
+ "
|
|
|
+ class="ms-4"
|
|
|
+ ></div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <hr />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="horizontal-buttons">
|
|
|
+ @if(isUpdate){
|
|
|
+ <ui-button [color]="'green'" style="width: 40%" (click)="update()">
|
|
|
+ Anpassen
|
|
|
+ </ui-button>
|
|
|
+ }@else{
|
|
|
+ <ui-button [color]="'green'" style="width: 40%" (click)="add()">
|
|
|
+ Erstellen
|
|
|
+ </ui-button>
|
|
|
+ }
|
|
|
+ <ui-button [color]="'red'" style="width: 40%" (click)="cancel()">
|
|
|
+ Abbrechen
|
|
|
+ </ui-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+Hallo, was geht ab ? Ich möchte gerne
|