|
|
@@ -1,9 +1,10 @@
|
|
1
|
1
|
import { Component, OnInit, Input } from '@angular/core';
|
|
2
|
2
|
import { ActivatedRoute } from '@angular/router';
|
|
3
|
|
-import { Spec, User, Character, Item } from '../../../../../../backend/Types/Types';
|
|
4
|
|
-import { getClassColor } from '../../../../../../backend/Types/PlayerSpecs';
|
|
|
3
|
+import { Spec, User, Character, Item, _Class, _Race, Class } from '../../../../../../backend/Types/Types';
|
|
|
4
|
+import { getClassColor, specs } from '../../../../../../backend/Types/PlayerSpecs';
|
|
5
|
5
|
import { _Tiers } from '../../../../../../backend/Types/Items';
|
|
6
|
6
|
import { IApiService } from '../../services/ApiService/ApiService';
|
|
|
7
|
+import { NbToastrService } from '@nebular/theme';
|
|
7
|
8
|
|
|
8
|
9
|
@Component({
|
|
9
|
10
|
selector: 'character',
|
|
|
@@ -13,11 +14,17 @@ export class FrontcraftCharacterComponent implements OnInit {
|
|
13
|
14
|
|
|
14
|
15
|
@Input() name?: string
|
|
15
|
16
|
@Input() link?: "owner" | "character" = 'owner'
|
|
16
|
|
-
|
|
17
|
17
|
char: (Character & User & Spec) = {
|
|
|
18
|
+ charactername: "Loading",
|
|
18
|
19
|
race: 'Human',
|
|
19
|
|
- class: 'Warrior'
|
|
|
20
|
+ class: 'Warrior',
|
|
|
21
|
+ spec: 'Arms'
|
|
20
|
22
|
} as any
|
|
|
23
|
+
|
|
|
24
|
+ classes = _Class
|
|
|
25
|
+ races = _Race
|
|
|
26
|
+ specs = specs[this.char.class]
|
|
|
27
|
+
|
|
21
|
28
|
color: string
|
|
22
|
29
|
tokens
|
|
23
|
30
|
dataLink = ""
|
|
|
@@ -27,23 +34,32 @@ export class FrontcraftCharacterComponent implements OnInit {
|
|
27
|
34
|
boss2 = { name: undefined, date: undefined }
|
|
28
|
35
|
gear2: Item[] = []
|
|
29
|
36
|
|
|
|
37
|
+ canManage: boolean = false
|
|
|
38
|
+
|
|
30
|
39
|
constructor(
|
|
31
|
40
|
private api: IApiService,
|
|
32
|
41
|
private route: ActivatedRoute,
|
|
|
42
|
+ private toast: NbToastrService,
|
|
33
|
43
|
) { }
|
|
34
|
44
|
|
|
35
|
45
|
async ngOnInit() {
|
|
36
|
46
|
const param = this.name || this.route.snapshot.paramMap.get('name');
|
|
37
|
47
|
if (!param) return
|
|
38
|
48
|
|
|
|
49
|
+ const manageChar = this.api.get('manageCharacter')
|
|
|
50
|
+
|
|
|
51
|
+ if (manageChar) this.canManage = true
|
|
|
52
|
+
|
|
39
|
53
|
const char = await this.api.get('CharacterManager').getCharacterByName(param)
|
|
40
|
54
|
if (char) {
|
|
41
|
55
|
this.color = getClassColor(char.class)
|
|
42
|
56
|
this.char = char
|
|
|
57
|
+ this.specs = specs[this.char.class]
|
|
43
|
58
|
this.api.get('ItemManager').getTokens(this.char, _Tiers, true).then(tokens => {
|
|
44
|
59
|
this.tokens = tokens
|
|
45
|
60
|
})
|
|
46
|
61
|
|
|
|
62
|
+ /*
|
|
47
|
63
|
this.dataLink = "https://classic.warcraftlogs.com:443/v1/parses/character/" + this.char.charactername.replace(/^\w/, c => c.toUpperCase()) + "/Gandling/EU?api_key=c698515ab4f592cdb848d80b3abe616c&metric=dps"
|
|
48
|
64
|
|
|
49
|
65
|
const json: any[] = await fetch(this.dataLink).then(raw => raw.json())
|
|
|
@@ -68,6 +84,24 @@ export class FrontcraftCharacterComponent implements OnInit {
|
|
68
|
84
|
const maybeItems: (Item | undefined)[] = await Promise.all(data.gear.filter(item => item.name != "Unknown Item").map(async item => await this.api.get('ItemManager').getItem(item.name)))
|
|
69
|
85
|
const geardata = maybeItems.filter(maybeItem => maybeItem != null)
|
|
70
|
86
|
this.gear2 = geardata
|
|
|
87
|
+ */
|
|
71
|
88
|
}
|
|
72
|
89
|
}
|
|
|
90
|
+
|
|
|
91
|
+ updateCharacter = async () => {
|
|
|
92
|
+ const manager = this.api.get('manageCharacter')
|
|
|
93
|
+ if (manager) {
|
|
|
94
|
+ const specid = await this.api.get('CharacterManager').getSpecId(this.char['class'], this.char['specname'] as any)
|
|
|
95
|
+ this.char.specid = specid
|
|
|
96
|
+ manager.updateCharacter(this.char).then(() => {
|
|
|
97
|
+ this.toast.show('Update', 'Success', { status: 'success' })
|
|
|
98
|
+ })
|
|
|
99
|
+ }
|
|
|
100
|
+ }
|
|
|
101
|
+ onSelectClass() {
|
|
|
102
|
+ this.specs = specs[this.char.class]
|
|
|
103
|
+ setTimeout(() => {
|
|
|
104
|
+ this.char.specname = this.specs[0]
|
|
|
105
|
+ }, 25)
|
|
|
106
|
+ }
|
|
73
|
107
|
}
|