Skip to content

Commit

Permalink
feat(Loot): reference viewer + improvements/refactor (#758)
Browse files Browse the repository at this point in the history
  • Loading branch information
FrancescoBorzi committed Jun 15, 2020
1 parent e135e93 commit 02d783b
Show file tree
Hide file tree
Showing 25 changed files with 622 additions and 611 deletions.
@@ -1,36 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { ReactiveFormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';

import { TopBarModule } from '@keira-shared/modules/top-bar/top-bar.module';
import { QueryOutputModule } from '@keira-shared/modules/query-output/query-output.module';
import { CreatureLootTemplateComponent } from './creature-loot-template.component';
import { ItemSelectorModule } from '@keira-shared/modules/selectors/item-selector/item-selector.module';
import { TooltipModule } from 'ngx-bootstrap/tooltip';
import { ToastrModule } from 'ngx-toastr';
import { toastrConfig } from '@keira-config/toastr.config';
import { FlagsSelectorModule } from '@keira-shared/modules/selectors/flags-selector/flags-selector.module';
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
import { CreatureLootTemplateService } from './creature-loot-template.service';
import { IconModule } from '@keira-shared/modules/icon/icon.module';
import { EditorButtonsModule } from '@keira-shared/modules/editor-buttons/editor-buttons.module';
import { LootEditorModule } from '@keira-shared/modules/loot-editor/loot-editor.module';

@NgModule({
declarations: [
CreatureLootTemplateComponent,
],
imports: [
BrowserModule,
ReactiveFormsModule,
CommonModule,
TopBarModule,
QueryOutputModule,
TooltipModule.forRoot(),
ToastrModule.forRoot(toastrConfig),
NgxDatatableModule,
ItemSelectorModule,
FlagsSelectorModule,
IconModule,
EditorButtonsModule,
LootEditorModule,
],
exports: [
CreatureLootTemplateComponent,
Expand Down
Expand Up @@ -16,7 +16,7 @@ import { CREATURE_ADDON_BYTES_2 } from '@keira-constants/options/creature-addon-
})
export class CreatureTemplateAddonComponent extends SingleRowEditorComponent<CreatureTemplateAddon> {

public get docUrl() {
public get docUrl(): string {
return this.WIKI_BASE_URL + CREATURE_SPAWN_ADDON_TABLE; // they share the same doc page
}

Expand Down
@@ -1,36 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { ReactiveFormsModule } from '@angular/forms';
import { TooltipModule } from 'ngx-bootstrap/tooltip';
import { ToastrModule } from 'ngx-toastr';
import { toastrConfig } from '@keira-config/toastr.config';
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
import { CommonModule } from '@angular/common';

import { TopBarModule } from '@keira-shared/modules/top-bar/top-bar.module';
import { QueryOutputModule } from '@keira-shared/modules/query-output/query-output.module';
import { PickpocketingLootTemplateComponent } from './pickpocketing-loot-template.component';
import { ItemSelectorModule } from '@keira-shared/modules/selectors/item-selector/item-selector.module';
import { FlagsSelectorModule } from '@keira-shared/modules/selectors/flags-selector/flags-selector.module';
import { PickpocketingLootTemplateService } from './pickpocketing-loot-template.service';
import { IconModule } from '@keira-shared/modules/icon/icon.module';
import { EditorButtonsModule } from '@keira-shared/modules/editor-buttons/editor-buttons.module';
import { LootEditorModule } from '@keira-shared/modules/loot-editor/loot-editor.module';

@NgModule({
declarations: [
PickpocketingLootTemplateComponent,
],
imports: [
BrowserModule,
ReactiveFormsModule,
CommonModule,
TopBarModule,
QueryOutputModule,
TooltipModule.forRoot(),
ToastrModule.forRoot(toastrConfig),
NgxDatatableModule,
ItemSelectorModule,
FlagsSelectorModule,
IconModule,
EditorButtonsModule,
LootEditorModule,
],
exports: [
PickpocketingLootTemplateComponent,
Expand Down
@@ -1,36 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { ReactiveFormsModule } from '@angular/forms';
import { TooltipModule } from 'ngx-bootstrap/tooltip';
import { ToastrModule } from 'ngx-toastr';
import { toastrConfig } from '@keira-config/toastr.config';
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
import { CommonModule } from '@angular/common';

import { TopBarModule } from '@keira-shared/modules/top-bar/top-bar.module';
import { QueryOutputModule } from '@keira-shared/modules/query-output/query-output.module';
import { SkinningLootTemplateComponent } from './skinning-loot-template.component';
import { ItemSelectorModule } from '@keira-shared/modules/selectors/item-selector/item-selector.module';
import { FlagsSelectorModule } from '@keira-shared/modules/selectors/flags-selector/flags-selector.module';
import { SkinningLootTemplateService } from './skinning-loot-template.service';
import { IconModule } from '@keira-shared/modules/icon/icon.module';
import { EditorButtonsModule } from '@keira-shared/modules/editor-buttons/editor-buttons.module';
import { LootEditorModule } from '@keira-shared/modules/loot-editor/loot-editor.module';

@NgModule({
declarations: [
SkinningLootTemplateComponent,
],
imports: [
BrowserModule,
ReactiveFormsModule,
CommonModule,
TopBarModule,
QueryOutputModule,
TooltipModule.forRoot(),
ToastrModule.forRoot(toastrConfig),
NgxDatatableModule,
ItemSelectorModule,
FlagsSelectorModule,
IconModule,
EditorButtonsModule,
LootEditorModule,
],
exports: [
SkinningLootTemplateComponent,
Expand Down
Expand Up @@ -13,148 +13,7 @@

<div *ngIf="(lootId > 0 && (type === 3 || type === 25)) && editorService.form && !!editorService.loadedEntityId && !editorService.loading">

<div class="content-block">
<keira-query-output [docUrl]="WIKI_BASE_URL + 'loot_template'" [editorService]="editorService" (executeQuery)="editorService.save($event)"></keira-query-output>
</div>

<div class="content-block">

<form
[formGroup]="editorService.form"
class="form-group edit-form"
>

<div class="row">
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="Item">
<keira-icon [itemId]="editorService.form.controls.Item.value"></keira-icon>
Item
</label>
<keira-item-selector-btn
[control]="editorService.form.controls.Item"
[config]="{ name: 'Item' }"
></keira-item-selector-btn>
<input [formControlName]="'Item'" id="Item" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="Reference">Reference</label>
<i
class="fas fa-info-circle ml-1" [placement]="'auto'"
[tooltip]="'Include a group of loots. Linked to referenced_loot_template.entry - future Keira3 releases will have an editors for this'"
></i>
<input [formControlName]="'Reference'" id="Reference" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="Chance">Chance</label>
<i
class="fas fa-info-circle ml-1" [placement]="'auto'"
[tooltip]="'Item drop chance'"
></i>
<input [formControlName]="'Chance'" id="Chance" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="QuestRequired">QuestRequired</label>
<i
class="fas fa-info-circle ml-1" [placement]="'auto'"
[tooltip]="'The item should be shown only to characters having the appropriate quest.'"
></i>
<input [formControlName]="'QuestRequired'" id="QuestRequired" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="LootMode">LootMode</label>
<keira-flags-selector-btn
[control]="editorService.form.controls.LootMode"
[config]="{ flags: LOOT_MODE, name: 'LootMode' }"
[modalClass]="'modal-lg'"
></keira-flags-selector-btn>
<input [formControlName]="'LootMode'" id="LootMode" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="GroupId">GroupId</label>
<i
class="fas fa-info-circle ml-1" [placement]="'auto'"
[tooltip]="'Set of loot definitions, check the wiki for more details'"
></i>
<input [formControlName]="'GroupId'" id="GroupId" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="MinCount">MinCount</label>
<i
class="fas fa-info-circle ml-1" [placement]="'auto'"
[tooltip]="'The minimum number of copies of the item that can drop in a single loot'"
></i>
<input [formControlName]="'MinCount'" id="MinCount" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="MaxCount">MaxCount</label>
<i
class="fas fa-info-circle ml-1" [placement]="'auto'"
[tooltip]="'The maximum number of copies of the item that can drop in a single loot'"
></i>
<input [formControlName]="'MaxCount'" id="MaxCount" type="number" class="form-control form-control-sm">
</div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-2 col-xl-2">
<label class="control-label" for="Comment">Comment</label>
<i
class="fas fa-info-circle ml-1" [placement]="'auto'"
[tooltip]="'A comment that is ignored by the core'"
></i>
<input [formControlName]="'Comment'" id="Comment" class="form-control form-control-sm">
</div>

<div class="col-12 form-error" [hidden]="editorService.isFormIdUnique()">
<i class="fas fa-exclamation-triangle"></i>
The <strong>{{ editorService.entitySecondIdField }}</strong> must be unique.
</div>

</div>
<keira-loot-editor [editorService]="editorService"></keira-loot-editor>

</form>

<div class="row">
<div class="col-12">

<keira-editor-buttons [editorService]="editorService"></keira-editor-buttons>

<ngx-datatable
id="editor-table"
class="bootstrap table table-striped text-center datatable-select datatable-icon-list"
[rows]="editorService.newRows"
[headerHeight]="DTCFG.headerHeight"
[footerHeight]="DTCFG.footerHeight"
[columnMode]="DTCFG.columnMode"
[rowHeight]="DTCFG.rowHeightWithIcon"
[selectionType]="DTCFG.selectionType"
(select)='editorService.onRowSelection($event)'
(keydown.delete)="editorService.deleteSelectedRow()"
>
<ngx-datatable-column [minWidth]="30" [maxWidth]="30" [sortable]="false">
<ng-template let-row="row" ngx-datatable-cell-template>
<i [hidden]="!editorService.isRowSelected(row)" class="fas fa-chevron-right"></i>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column [minWidth]="42" [maxWidth]="42" [sortable]="false">
<ng-template let-row="row" ngx-datatable-cell-template>
<keira-icon [itemId]="row.Item"></keira-icon>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column name="Item" prop="Item" [minWidth]="80"></ngx-datatable-column>
<ngx-datatable-column name="Name" [minWidth]="200">
<ng-template let-row="row" ngx-datatable-cell-template>
{{ editorService.queryService.getItemNameById(row.Item) | async }}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column name="Reference" prop="Reference"></ngx-datatable-column>
<ngx-datatable-column name="Chance" prop="Chance"></ngx-datatable-column>
<ngx-datatable-column name="QuestRequired" prop="QuestRequired"></ngx-datatable-column>
<ngx-datatable-column name="LootMode" prop="LootMode"></ngx-datatable-column>
<ngx-datatable-column name="GroupId" prop="GroupId"></ngx-datatable-column>
<ngx-datatable-column name="MinCount" prop="MinCount"></ngx-datatable-column>
<ngx-datatable-column name="MaxCount" prop="MaxCount"></ngx-datatable-column>
</ngx-datatable>

</div>
</div>
</div>
</div>
</div>
@@ -1,37 +1,20 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { ReactiveFormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';

import { TopBarModule } from '@keira-shared/modules/top-bar/top-bar.module';
import { QueryOutputModule } from '@keira-shared/modules/query-output/query-output.module';
import { GameobjectLootTemplateComponent } from './gameobject-loot-template.component';
import { ItemSelectorModule } from '@keira-shared/modules/selectors/item-selector/item-selector.module';
import { TooltipModule } from 'ngx-bootstrap/tooltip';
import { ToastrModule } from 'ngx-toastr';
import { toastrConfig } from '@keira-config/toastr.config';
import { FlagsSelectorModule } from '@keira-shared/modules/selectors/flags-selector/flags-selector.module';
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
import { GameobjectLootTemplateService } from './gameobject-loot-template.service';
import { GameobjectHandlerService } from '../gameobject-handler.service';
import { IconModule } from '@keira-shared/modules/icon/icon.module';
import { EditorButtonsModule } from '@keira-shared/modules/editor-buttons/editor-buttons.module';
import { LootEditorModule } from '@keira-shared/modules/loot-editor/loot-editor.module';

@NgModule({
declarations: [
GameobjectLootTemplateComponent,
],
imports: [
BrowserModule,
ReactiveFormsModule,
CommonModule,
TopBarModule,
QueryOutputModule,
TooltipModule.forRoot(),
ToastrModule.forRoot(toastrConfig),
ItemSelectorModule,
FlagsSelectorModule,
NgxDatatableModule,
IconModule,
EditorButtonsModule,
LootEditorModule,
],
exports: [
GameobjectLootTemplateComponent,
Expand Down
@@ -1,36 +1,21 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { ReactiveFormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';

import { TopBarModule } from '@keira-shared/modules/top-bar/top-bar.module';
import { QueryOutputModule } from '@keira-shared/modules/query-output/query-output.module';
import { DisenchantLootTemplateComponent } from './disenchant-loot-template.component';
import { ItemSelectorModule } from '@keira-shared/modules/selectors/item-selector/item-selector.module';
import { TooltipModule } from 'ngx-bootstrap/tooltip';
import { ToastrModule } from 'ngx-toastr';
import { toastrConfig } from '@keira-config/toastr.config';
import { FlagsSelectorModule } from '@keira-shared/modules/selectors/flags-selector/flags-selector.module';
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
import { DisenchantLootTemplateService } from './disenchant-loot-template.service';
import { IconModule } from '@keira-shared/modules/icon/icon.module';
import { EditorButtonsModule } from '@keira-shared/modules/editor-buttons/editor-buttons.module';
import { LootEditorModule } from '@keira-shared/modules/loot-editor/loot-editor.module';
import { TopBarModule } from '@keira-shared/modules/top-bar/top-bar.module';

@NgModule({
declarations: [
DisenchantLootTemplateComponent,
],
imports: [
BrowserModule,
ReactiveFormsModule,
TopBarModule,
QueryOutputModule,
CommonModule,
TooltipModule.forRoot(),
ToastrModule.forRoot(toastrConfig),
NgxDatatableModule,
ItemSelectorModule,
FlagsSelectorModule,
IconModule,
EditorButtonsModule,
LootEditorModule,
TopBarModule,
],
exports: [
DisenchantLootTemplateComponent,
Expand Down

0 comments on commit 02d783b

Please sign in to comment.