GearSets::getClassVariableData()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 4
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
crap 2
1
<?php namespace FreedomCore\TrinityCore\Character\Classes\Boost;
2
3
use FreedomCore\TrinityCore\Character\Models\Character;
4
use FreedomCore\TrinityCore\Character\Models\CharacterInventory;
5
use FreedomCore\TrinityCore\Character\Models\ItemInstance;
6
7
/**
8
 * Class GearSets
9
 * @package FreedomCore\TrinityCore\Character\Classes\Boost
10
 */
11
class GearSets
12
{
13
14
    /**
15
     * Link for WoWDB item finder
16
     * @var string
17
     */
18
    protected $wowDBSerachLink = 'http://www.wowdb.com/items?filter-ilvl-min=%s&filter-ilvl-max=%s&filter-reqlvl-min=%s&filter-reqlvl-max=%s&filter-af=%s&filter-af-spec=%s&filter-quality=4&filter-slot=%s&sort=-level';
19
20
    /**
21
     * Relation between coded slots and WoWDB Slots
22
     * @var array
23
     */
24
    protected $wowDBSlots = [
25
        0   =>  2,  // Head
26
        1   =>  4,  // Neck
27
        2   =>  8,  // Shoulders
28
        4   =>  32,  // Chest
29
        5   =>  64,  // Waist
30
        6   =>  128,  // Legs
31
        7   =>  256,  // Feet
32
        8   =>  512,  // Wrists
33
        9   =>  1024,  // Hands
34
        10  =>  2048,  // Finger 1
35
        11  =>  2048,  // Finger 2
36
        12  =>  4096,  // Trinket 1
37
        13  =>  4096,  // Trinket 2
38
        14  =>  65536,  // Back
39
    ];
40
41
    /**
42
     * Available Classes
43
     * @var array
44
     */
45
    protected $classes = [
46
        1   =>  'warrior',
47
        2   =>  'paladin',
48
        3   =>  'hunter',
49
        4   =>  'rogue',
50
        5   =>  'priest',
51
        6   =>  'deathKnight',
52
        7   =>  'shaman',
53
        8   =>  'mage',
54
        9   =>  'warlock',
55
        10  =>  'monk',
56
        11  =>  'druid'
57
    ];
58
59
    /**
60
     * Gear Levels by Boost Level
61
     * @var array
62
     */
63
    protected $gearLevels = [
64
        90  =>  483,
65
        100 =>  640
66
    ];
67
68
    /**
69
     * Gear set for boosted Warrior
70
     * @var array
71
     */
72
    protected $warriorGear = [
73
        90  =>  [
74
            1   =>  [
75
                0   =>  0,  // Head
76
                1   =>  0,  // Neck
77
                2   =>  0,  // Shoulders
78
                4   =>  0,  // Chest
79
                5   =>  0,  // Waist
80
                6   =>  0,  // Legs
81
                7   =>  0,  // Feet
82
                8   =>  0,  // Wrists
83
                9   =>  0,  // Hands
84
                10  =>  0,  // Finger 1
85
                11  =>  0,  // Finger 2
86
                12  =>  0,  // Trinket 1
87
                13  =>  0,  // Trinket 2
88
                14  =>  0,  // Back
89
            ],
90
            2   =>  [
91
                0   =>  0,  // Head
92
                1   =>  0,  // Neck
93
                2   =>  0,  // Shoulders
94
                4   =>  0,  // Chest
95
                5   =>  0,  // Waist
96
                6   =>  0,  // Legs
97
                7   =>  0,  // Feet
98
                8   =>  0,  // Wrists
99
                9   =>  0,  // Hands
100
                10  =>  0,  // Finger 1
101
                11  =>  0,  // Finger 2
102
                12  =>  0,  // Trinket 1
103
                13  =>  0,  // Trinket 2
104
                14  =>  0,  // Back
105
            ],
106
            3   =>  [
107
                0   =>  0,  // Head
108
                1   =>  0,  // Neck
109
                2   =>  0,  // Shoulders
110
                4   =>  0,  // Chest
111
                5   =>  0,  // Waist
112
                6   =>  0,  // Legs
113
                7   =>  0,  // Feet
114
                8   =>  0,  // Wrists
115
                9   =>  0,  // Hands
116
                10  =>  0,  // Finger 1
117
                11  =>  0,  // Finger 2
118
                12  =>  0,  // Trinket 1
119
                13  =>  0,  // Trinket 2
120
                14  =>  0,  // Back
121
            ]
122
        ],
123
        100 =>  [
124
            1   =>  [
125
                0   =>  0,  // Head
126
                1   =>  0,  // Neck
127
                2   =>  0,  // Shoulders
128
                4   =>  0,  // Chest
129
                5   =>  0,  // Waist
130
                6   =>  0,  // Legs
131
                7   =>  0,  // Feet
132
                8   =>  0,  // Wrists
133
                9   =>  0,  // Hands
134
                10  =>  0,  // Finger 1
135
                11  =>  0,  // Finger 2
136
                12  =>  0,  // Trinket 1
137
                13  =>  0,  // Trinket 2
138
                14  =>  0,  // Back
139
            ],
140
            2   =>  [
141
                0   =>  0,  // Head
142
                1   =>  0,  // Neck
143
                2   =>  0,  // Shoulders
144
                4   =>  0,  // Chest
145
                5   =>  0,  // Waist
146
                6   =>  0,  // Legs
147
                7   =>  0,  // Feet
148
                8   =>  0,  // Wrists
149
                9   =>  0,  // Hands
150
                10  =>  0,  // Finger 1
151
                11  =>  0,  // Finger 2
152
                12  =>  0,  // Trinket 1
153
                13  =>  0,  // Trinket 2
154
                14  =>  0,  // Back
155
            ],
156
            3   =>  [
157
                0   =>  0,  // Head
158
                1   =>  0,  // Neck
159
                2   =>  0,  // Shoulders
160
                4   =>  0,  // Chest
161
                5   =>  0,  // Waist
162
                6   =>  0,  // Legs
163
                7   =>  0,  // Feet
164
                8   =>  0,  // Wrists
165
                9   =>  0,  // Hands
166
                10  =>  0,  // Finger 1
167
                11  =>  0,  // Finger 2
168
                12  =>  0,  // Trinket 1
169
                13  =>  0,  // Trinket 2
170
                14  =>  0,  // Back
171
            ]
172
        ]
173
    ];
174
175
    /**
176
     * Gear set for boosted Paladin
177
     * @var array
178
     */
179
    protected $paladinGear = [
180
        90  =>  [
181
            1   =>  [
182
                0   =>  0,  // Head
183
                1   =>  0,  // Neck
184
                2   =>  0,  // Shoulders
185
                4   =>  0,  // Chest
186
                5   =>  0,  // Waist
187
                6   =>  0,  // Legs
188
                7   =>  0,  // Feet
189
                8   =>  0,  // Wrists
190
                9   =>  0,  // Hands
191
                10  =>  0,  // Finger 1
192
                11  =>  0,  // Finger 2
193
                12  =>  0,  // Trinket 1
194
                13  =>  0,  // Trinket 2
195
                14  =>  0,  // Back
196
            ],
197
            2   =>  [
198
                0   =>  0,  // Head
199
                1   =>  0,  // Neck
200
                2   =>  0,  // Shoulders
201
                4   =>  0,  // Chest
202
                5   =>  0,  // Waist
203
                6   =>  0,  // Legs
204
                7   =>  0,  // Feet
205
                8   =>  0,  // Wrists
206
                9   =>  0,  // Hands
207
                10  =>  0,  // Finger 1
208
                11  =>  0,  // Finger 2
209
                12  =>  0,  // Trinket 1
210
                13  =>  0,  // Trinket 2
211
                14  =>  0,  // Back
212
            ],
213
            3   =>  [
214
                0   =>  0,  // Head
215
                1   =>  0,  // Neck
216
                2   =>  0,  // Shoulders
217
                4   =>  0,  // Chest
218
                5   =>  0,  // Waist
219
                6   =>  0,  // Legs
220
                7   =>  0,  // Feet
221
                8   =>  0,  // Wrists
222
                9   =>  0,  // Hands
223
                10  =>  0,  // Finger 1
224
                11  =>  0,  // Finger 2
225
                12  =>  0,  // Trinket 1
226
                13  =>  0,  // Trinket 2
227
                14  =>  0,  // Back
228
            ]
229
        ],
230
        100 =>  [
231
            1   =>  [
232
                0   =>  0,  // Head
233
                1   =>  0,  // Neck
234
                2   =>  0,  // Shoulders
235
                4   =>  0,  // Chest
236
                5   =>  0,  // Waist
237
                6   =>  0,  // Legs
238
                7   =>  0,  // Feet
239
                8   =>  0,  // Wrists
240
                9   =>  0,  // Hands
241
                10  =>  0,  // Finger 1
242
                11  =>  0,  // Finger 2
243
                12  =>  0,  // Trinket 1
244
                13  =>  0,  // Trinket 2
245
                14  =>  0,  // Back
246
            ],
247
            2   =>  [
248
                0   =>  0,  // Head
249
                1   =>  0,  // Neck
250
                2   =>  0,  // Shoulders
251
                4   =>  0,  // Chest
252
                5   =>  0,  // Waist
253
                6   =>  0,  // Legs
254
                7   =>  0,  // Feet
255
                8   =>  0,  // Wrists
256
                9   =>  0,  // Hands
257
                10  =>  0,  // Finger 1
258
                11  =>  0,  // Finger 2
259
                12  =>  0,  // Trinket 1
260
                13  =>  0,  // Trinket 2
261
                14  =>  0,  // Back
262
            ],
263
            3   =>  [
264
                0   =>  0,  // Head
265
                1   =>  0,  // Neck
266
                2   =>  0,  // Shoulders
267
                4   =>  0,  // Chest
268
                5   =>  0,  // Waist
269
                6   =>  0,  // Legs
270
                7   =>  0,  // Feet
271
                8   =>  0,  // Wrists
272
                9   =>  0,  // Hands
273
                10  =>  0,  // Finger 1
274
                11  =>  0,  // Finger 2
275
                12  =>  0,  // Trinket 1
276
                13  =>  0,  // Trinket 2
277
                14  =>  0,  // Back
278
            ]
279
        ]
280
    ];
281
282
    /**
283
     * Gear set for boosted Hunter
284
     * @var array
285
     */
286
    protected $hunterGear = [
287
        90  =>  [
288
            1   =>  [
289
                0   =>  0,  // Head
290
                1   =>  0,  // Neck
291
                2   =>  0,  // Shoulders
292
                4   =>  0,  // Chest
293
                5   =>  0,  // Waist
294
                6   =>  0,  // Legs
295
                7   =>  0,  // Feet
296
                8   =>  0,  // Wrists
297
                9   =>  0,  // Hands
298
                10  =>  0,  // Finger 1
299
                11  =>  0,  // Finger 2
300
                12  =>  0,  // Trinket 1
301
                13  =>  0,  // Trinket 2
302
                14  =>  0,  // Back
303
            ],
304
            2   =>  [
305
                0   =>  0,  // Head
306
                1   =>  0,  // Neck
307
                2   =>  0,  // Shoulders
308
                4   =>  0,  // Chest
309
                5   =>  0,  // Waist
310
                6   =>  0,  // Legs
311
                7   =>  0,  // Feet
312
                8   =>  0,  // Wrists
313
                9   =>  0,  // Hands
314
                10  =>  0,  // Finger 1
315
                11  =>  0,  // Finger 2
316
                12  =>  0,  // Trinket 1
317
                13  =>  0,  // Trinket 2
318
                14  =>  0,  // Back
319
            ],
320
            3   =>  [
321
                0   =>  0,  // Head
322
                1   =>  0,  // Neck
323
                2   =>  0,  // Shoulders
324
                4   =>  0,  // Chest
325
                5   =>  0,  // Waist
326
                6   =>  0,  // Legs
327
                7   =>  0,  // Feet
328
                8   =>  0,  // Wrists
329
                9   =>  0,  // Hands
330
                10  =>  0,  // Finger 1
331
                11  =>  0,  // Finger 2
332
                12  =>  0,  // Trinket 1
333
                13  =>  0,  // Trinket 2
334
                14  =>  0,  // Back
335
            ]
336
        ],
337
        100 =>  [
338
            1   =>  [
339
                0   =>  0,  // Head
340
                1   =>  0,  // Neck
341
                2   =>  0,  // Shoulders
342
                4   =>  0,  // Chest
343
                5   =>  0,  // Waist
344
                6   =>  0,  // Legs
345
                7   =>  0,  // Feet
346
                8   =>  0,  // Wrists
347
                9   =>  0,  // Hands
348
                10  =>  0,  // Finger 1
349
                11  =>  0,  // Finger 2
350
                12  =>  0,  // Trinket 1
351
                13  =>  0,  // Trinket 2
352
                14  =>  0,  // Back
353
            ],
354
            2   =>  [
355
                0   =>  0,  // Head
356
                1   =>  0,  // Neck
357
                2   =>  0,  // Shoulders
358
                4   =>  0,  // Chest
359
                5   =>  0,  // Waist
360
                6   =>  0,  // Legs
361
                7   =>  0,  // Feet
362
                8   =>  0,  // Wrists
363
                9   =>  0,  // Hands
364
                10  =>  0,  // Finger 1
365
                11  =>  0,  // Finger 2
366
                12  =>  0,  // Trinket 1
367
                13  =>  0,  // Trinket 2
368
                14  =>  0,  // Back
369
            ],
370
            3   =>  [
371
                0   =>  0,  // Head
372
                1   =>  0,  // Neck
373
                2   =>  0,  // Shoulders
374
                4   =>  0,  // Chest
375
                5   =>  0,  // Waist
376
                6   =>  0,  // Legs
377
                7   =>  0,  // Feet
378
                8   =>  0,  // Wrists
379
                9   =>  0,  // Hands
380
                10  =>  0,  // Finger 1
381
                11  =>  0,  // Finger 2
382
                12  =>  0,  // Trinket 1
383
                13  =>  0,  // Trinket 2
384
                14  =>  0,  // Back
385
            ]
386
        ]
387
    ];
388
389
    /**
390
     * Gear set for boosted Rogue
391
     * @var array
392
     */
393
    protected $rogueGear = [
394
        90  =>  [
395
            1   =>  [
396
                0   =>  0,  // Head
397
                1   =>  0,  // Neck
398
                2   =>  0,  // Shoulders
399
                4   =>  0,  // Chest
400
                5   =>  0,  // Waist
401
                6   =>  0,  // Legs
402
                7   =>  0,  // Feet
403
                8   =>  0,  // Wrists
404
                9   =>  0,  // Hands
405
                10  =>  0,  // Finger 1
406
                11  =>  0,  // Finger 2
407
                12  =>  0,  // Trinket 1
408
                13  =>  0,  // Trinket 2
409
                14  =>  0,  // Back
410
            ],
411
            2   =>  [
412
                0   =>  0,  // Head
413
                1   =>  0,  // Neck
414
                2   =>  0,  // Shoulders
415
                4   =>  0,  // Chest
416
                5   =>  0,  // Waist
417
                6   =>  0,  // Legs
418
                7   =>  0,  // Feet
419
                8   =>  0,  // Wrists
420
                9   =>  0,  // Hands
421
                10  =>  0,  // Finger 1
422
                11  =>  0,  // Finger 2
423
                12  =>  0,  // Trinket 1
424
                13  =>  0,  // Trinket 2
425
                14  =>  0,  // Back
426
            ],
427
            3   =>  [
428
                0   =>  0,  // Head
429
                1   =>  0,  // Neck
430
                2   =>  0,  // Shoulders
431
                4   =>  0,  // Chest
432
                5   =>  0,  // Waist
433
                6   =>  0,  // Legs
434
                7   =>  0,  // Feet
435
                8   =>  0,  // Wrists
436
                9   =>  0,  // Hands
437
                10  =>  0,  // Finger 1
438
                11  =>  0,  // Finger 2
439
                12  =>  0,  // Trinket 1
440
                13  =>  0,  // Trinket 2
441
                14  =>  0,  // Back
442
            ]
443
        ],
444
        100 =>  [
445
            1   =>  [
446
                0   =>  0,  // Head
447
                1   =>  0,  // Neck
448
                2   =>  0,  // Shoulders
449
                4   =>  0,  // Chest
450
                5   =>  0,  // Waist
451
                6   =>  0,  // Legs
452
                7   =>  0,  // Feet
453
                8   =>  0,  // Wrists
454
                9   =>  0,  // Hands
455
                10  =>  0,  // Finger 1
456
                11  =>  0,  // Finger 2
457
                12  =>  0,  // Trinket 1
458
                13  =>  0,  // Trinket 2
459
                14  =>  0,  // Back
460
            ],
461
            2   =>  [
462
                0   =>  0,  // Head
463
                1   =>  0,  // Neck
464
                2   =>  0,  // Shoulders
465
                4   =>  0,  // Chest
466
                5   =>  0,  // Waist
467
                6   =>  0,  // Legs
468
                7   =>  0,  // Feet
469
                8   =>  0,  // Wrists
470
                9   =>  0,  // Hands
471
                10  =>  0,  // Finger 1
472
                11  =>  0,  // Finger 2
473
                12  =>  0,  // Trinket 1
474
                13  =>  0,  // Trinket 2
475
                14  =>  0,  // Back
476
            ],
477
            3   =>  [
478
                0   =>  0,  // Head
479
                1   =>  0,  // Neck
480
                2   =>  0,  // Shoulders
481
                4   =>  0,  // Chest
482
                5   =>  0,  // Waist
483
                6   =>  0,  // Legs
484
                7   =>  0,  // Feet
485
                8   =>  0,  // Wrists
486
                9   =>  0,  // Hands
487
                10  =>  0,  // Finger 1
488
                11  =>  0,  // Finger 2
489
                12  =>  0,  // Trinket 1
490
                13  =>  0,  // Trinket 2
491
                14  =>  0,  // Back
492
            ]
493
        ]
494
    ];
495
496
    /**
497
     * Gear set for boosted Priest
498
     * @var array
499
     */
500
    protected $priestGear = [
501
        90  =>  [
502
            1   =>  [
503
                0   =>  0,  // Head
504
                1   =>  0,  // Neck
505
                2   =>  0,  // Shoulders
506
                4   =>  0,  // Chest
507
                5   =>  0,  // Waist
508
                6   =>  0,  // Legs
509
                7   =>  0,  // Feet
510
                8   =>  0,  // Wrists
511
                9   =>  0,  // Hands
512
                10  =>  0,  // Finger 1
513
                11  =>  0,  // Finger 2
514
                12  =>  0,  // Trinket 1
515
                13  =>  0,  // Trinket 2
516
                14  =>  0,  // Back
517
            ],
518
            2   =>  [
519
                0   =>  0,  // Head
520
                1   =>  0,  // Neck
521
                2   =>  0,  // Shoulders
522
                4   =>  0,  // Chest
523
                5   =>  0,  // Waist
524
                6   =>  0,  // Legs
525
                7   =>  0,  // Feet
526
                8   =>  0,  // Wrists
527
                9   =>  0,  // Hands
528
                10  =>  0,  // Finger 1
529
                11  =>  0,  // Finger 2
530
                12  =>  0,  // Trinket 1
531
                13  =>  0,  // Trinket 2
532
                14  =>  0,  // Back
533
            ],
534
            3   =>  [
535
                0   =>  0,  // Head
536
                1   =>  0,  // Neck
537
                2   =>  0,  // Shoulders
538
                4   =>  0,  // Chest
539
                5   =>  0,  // Waist
540
                6   =>  0,  // Legs
541
                7   =>  0,  // Feet
542
                8   =>  0,  // Wrists
543
                9   =>  0,  // Hands
544
                10  =>  0,  // Finger 1
545
                11  =>  0,  // Finger 2
546
                12  =>  0,  // Trinket 1
547
                13  =>  0,  // Trinket 2
548
                14  =>  0,  // Back
549
            ]
550
        ],
551
        100 =>  [
552
            1   =>  [
553
                0   =>  0,  // Head
554
                1   =>  0,  // Neck
555
                2   =>  0,  // Shoulders
556
                4   =>  0,  // Chest
557
                5   =>  0,  // Waist
558
                6   =>  0,  // Legs
559
                7   =>  0,  // Feet
560
                8   =>  0,  // Wrists
561
                9   =>  0,  // Hands
562
                10  =>  0,  // Finger 1
563
                11  =>  0,  // Finger 2
564
                12  =>  0,  // Trinket 1
565
                13  =>  0,  // Trinket 2
566
                14  =>  0,  // Back
567
            ],
568
            2   =>  [
569
                0   =>  0,  // Head
570
                1   =>  0,  // Neck
571
                2   =>  0,  // Shoulders
572
                4   =>  0,  // Chest
573
                5   =>  0,  // Waist
574
                6   =>  0,  // Legs
575
                7   =>  0,  // Feet
576
                8   =>  0,  // Wrists
577
                9   =>  0,  // Hands
578
                10  =>  0,  // Finger 1
579
                11  =>  0,  // Finger 2
580
                12  =>  0,  // Trinket 1
581
                13  =>  0,  // Trinket 2
582
                14  =>  0,  // Back
583
            ],
584
            3   =>  [
585
                0   =>  0,  // Head
586
                1   =>  0,  // Neck
587
                2   =>  0,  // Shoulders
588
                4   =>  0,  // Chest
589
                5   =>  0,  // Waist
590
                6   =>  0,  // Legs
591
                7   =>  0,  // Feet
592
                8   =>  0,  // Wrists
593
                9   =>  0,  // Hands
594
                10  =>  0,  // Finger 1
595
                11  =>  0,  // Finger 2
596
                12  =>  0,  // Trinket 1
597
                13  =>  0,  // Trinket 2
598
                14  =>  0,  // Back
599
            ]
600
        ]
601
    ];
602
603
    /**
604
     * Gear set for boosted Death Knight
605
     * @var array
606
     */
607
    protected $deathKnightGear = [
608
        90  =>  [
609
            1   =>  [
610
                0   =>  0,  // Head
611
                1   =>  0,  // Neck
612
                2   =>  0,  // Shoulders
613
                4   =>  0,  // Chest
614
                5   =>  0,  // Waist
615
                6   =>  0,  // Legs
616
                7   =>  0,  // Feet
617
                8   =>  0,  // Wrists
618
                9   =>  0,  // Hands
619
                10  =>  0,  // Finger 1
620
                11  =>  0,  // Finger 2
621
                12  =>  0,  // Trinket 1
622
                13  =>  0,  // Trinket 2
623
                14  =>  0,  // Back
624
            ],
625
            2   =>  [
626
                0   =>  0,  // Head
627
                1   =>  0,  // Neck
628
                2   =>  0,  // Shoulders
629
                4   =>  0,  // Chest
630
                5   =>  0,  // Waist
631
                6   =>  0,  // Legs
632
                7   =>  0,  // Feet
633
                8   =>  0,  // Wrists
634
                9   =>  0,  // Hands
635
                10  =>  0,  // Finger 1
636
                11  =>  0,  // Finger 2
637
                12  =>  0,  // Trinket 1
638
                13  =>  0,  // Trinket 2
639
                14  =>  0,  // Back
640
            ],
641
            3   =>  [
642
                0   =>  0,  // Head
643
                1   =>  0,  // Neck
644
                2   =>  0,  // Shoulders
645
                4   =>  0,  // Chest
646
                5   =>  0,  // Waist
647
                6   =>  0,  // Legs
648
                7   =>  0,  // Feet
649
                8   =>  0,  // Wrists
650
                9   =>  0,  // Hands
651
                10  =>  0,  // Finger 1
652
                11  =>  0,  // Finger 2
653
                12  =>  0,  // Trinket 1
654
                13  =>  0,  // Trinket 2
655
                14  =>  0,  // Back
656
            ]
657
        ],
658
        100 =>  [
659
            1   =>  [
660
                0   =>  0,  // Head
661
                1   =>  0,  // Neck
662
                2   =>  0,  // Shoulders
663
                4   =>  0,  // Chest
664
                5   =>  0,  // Waist
665
                6   =>  0,  // Legs
666
                7   =>  0,  // Feet
667
                8   =>  0,  // Wrists
668
                9   =>  0,  // Hands
669
                10  =>  0,  // Finger 1
670
                11  =>  0,  // Finger 2
671
                12  =>  0,  // Trinket 1
672
                13  =>  0,  // Trinket 2
673
                14  =>  0,  // Back
674
            ],
675
            2   =>  [
676
                0   =>  0,  // Head
677
                1   =>  0,  // Neck
678
                2   =>  0,  // Shoulders
679
                4   =>  0,  // Chest
680
                5   =>  0,  // Waist
681
                6   =>  0,  // Legs
682
                7   =>  0,  // Feet
683
                8   =>  0,  // Wrists
684
                9   =>  0,  // Hands
685
                10  =>  0,  // Finger 1
686
                11  =>  0,  // Finger 2
687
                12  =>  0,  // Trinket 1
688
                13  =>  0,  // Trinket 2
689
                14  =>  0,  // Back
690
            ],
691
            3   =>  [
692
                0   =>  0,  // Head
693
                1   =>  0,  // Neck
694
                2   =>  0,  // Shoulders
695
                4   =>  0,  // Chest
696
                5   =>  0,  // Waist
697
                6   =>  0,  // Legs
698
                7   =>  0,  // Feet
699
                8   =>  0,  // Wrists
700
                9   =>  0,  // Hands
701
                10  =>  0,  // Finger 1
702
                11  =>  0,  // Finger 2
703
                12  =>  0,  // Trinket 1
704
                13  =>  0,  // Trinket 2
705
                14  =>  0,  // Back
706
            ]
707
        ]
708
    ];
709
710
    /**
711
     * Gear set for boosted Shaman
712
     * @var array
713
     */
714
    protected $shamanGear = [
715
        90  =>  [
716
            1   =>  [
717
                0   =>  0,  // Head
718
                1   =>  0,  // Neck
719
                2   =>  0,  // Shoulders
720
                4   =>  0,  // Chest
721
                5   =>  0,  // Waist
722
                6   =>  0,  // Legs
723
                7   =>  0,  // Feet
724
                8   =>  0,  // Wrists
725
                9   =>  0,  // Hands
726
                10  =>  0,  // Finger 1
727
                11  =>  0,  // Finger 2
728
                12  =>  0,  // Trinket 1
729
                13  =>  0,  // Trinket 2
730
                14  =>  0,  // Back
731
            ],
732
            2   =>  [
733
                0   =>  0,  // Head
734
                1   =>  0,  // Neck
735
                2   =>  0,  // Shoulders
736
                4   =>  0,  // Chest
737
                5   =>  0,  // Waist
738
                6   =>  0,  // Legs
739
                7   =>  0,  // Feet
740
                8   =>  0,  // Wrists
741
                9   =>  0,  // Hands
742
                10  =>  0,  // Finger 1
743
                11  =>  0,  // Finger 2
744
                12  =>  0,  // Trinket 1
745
                13  =>  0,  // Trinket 2
746
                14  =>  0,  // Back
747
            ],
748
            3   =>  [
749
                0   =>  0,  // Head
750
                1   =>  0,  // Neck
751
                2   =>  0,  // Shoulders
752
                4   =>  0,  // Chest
753
                5   =>  0,  // Waist
754
                6   =>  0,  // Legs
755
                7   =>  0,  // Feet
756
                8   =>  0,  // Wrists
757
                9   =>  0,  // Hands
758
                10  =>  0,  // Finger 1
759
                11  =>  0,  // Finger 2
760
                12  =>  0,  // Trinket 1
761
                13  =>  0,  // Trinket 2
762
                14  =>  0,  // Back
763
            ]
764
        ],
765
        100 =>  [
766
            1   =>  [
767
                0   =>  0,  // Head
768
                1   =>  0,  // Neck
769
                2   =>  0,  // Shoulders
770
                4   =>  0,  // Chest
771
                5   =>  0,  // Waist
772
                6   =>  0,  // Legs
773
                7   =>  0,  // Feet
774
                8   =>  0,  // Wrists
775
                9   =>  0,  // Hands
776
                10  =>  0,  // Finger 1
777
                11  =>  0,  // Finger 2
778
                12  =>  0,  // Trinket 1
779
                13  =>  0,  // Trinket 2
780
                14  =>  0,  // Back
781
            ],
782
            2   =>  [
783
                0   =>  0,  // Head
784
                1   =>  0,  // Neck
785
                2   =>  0,  // Shoulders
786
                4   =>  0,  // Chest
787
                5   =>  0,  // Waist
788
                6   =>  0,  // Legs
789
                7   =>  0,  // Feet
790
                8   =>  0,  // Wrists
791
                9   =>  0,  // Hands
792
                10  =>  0,  // Finger 1
793
                11  =>  0,  // Finger 2
794
                12  =>  0,  // Trinket 1
795
                13  =>  0,  // Trinket 2
796
                14  =>  0,  // Back
797
            ],
798
            3   =>  [
799
                0   =>  0,  // Head
800
                1   =>  0,  // Neck
801
                2   =>  0,  // Shoulders
802
                4   =>  0,  // Chest
803
                5   =>  0,  // Waist
804
                6   =>  0,  // Legs
805
                7   =>  0,  // Feet
806
                8   =>  0,  // Wrists
807
                9   =>  0,  // Hands
808
                10  =>  0,  // Finger 1
809
                11  =>  0,  // Finger 2
810
                12  =>  0,  // Trinket 1
811
                13  =>  0,  // Trinket 2
812
                14  =>  0,  // Back
813
            ]
814
        ]
815
    ];
816
817
    /**
818
     * Gear set for boosted Mage
819
     * @var array
820
     */
821
    protected $mageGear = [
822
        90  =>  [
823
            1   =>  [
824
                0   =>  0,  // Head
825
                1   =>  0,  // Neck
826
                2   =>  0,  // Shoulders
827
                4   =>  0,  // Chest
828
                5   =>  0,  // Waist
829
                6   =>  0,  // Legs
830
                7   =>  0,  // Feet
831
                8   =>  0,  // Wrists
832
                9   =>  0,  // Hands
833
                10  =>  0,  // Finger 1
834
                11  =>  0,  // Finger 2
835
                12  =>  0,  // Trinket 1
836
                13  =>  0,  // Trinket 2
837
                14  =>  0,  // Back
838
            ],
839
            2   =>  [
840
                0   =>  0,  // Head
841
                1   =>  0,  // Neck
842
                2   =>  0,  // Shoulders
843
                4   =>  0,  // Chest
844
                5   =>  0,  // Waist
845
                6   =>  0,  // Legs
846
                7   =>  0,  // Feet
847
                8   =>  0,  // Wrists
848
                9   =>  0,  // Hands
849
                10  =>  0,  // Finger 1
850
                11  =>  0,  // Finger 2
851
                12  =>  0,  // Trinket 1
852
                13  =>  0,  // Trinket 2
853
                14  =>  0,  // Back
854
            ],
855
            3   =>  [
856
                0   =>  0,  // Head
857
                1   =>  0,  // Neck
858
                2   =>  0,  // Shoulders
859
                4   =>  0,  // Chest
860
                5   =>  0,  // Waist
861
                6   =>  0,  // Legs
862
                7   =>  0,  // Feet
863
                8   =>  0,  // Wrists
864
                9   =>  0,  // Hands
865
                10  =>  0,  // Finger 1
866
                11  =>  0,  // Finger 2
867
                12  =>  0,  // Trinket 1
868
                13  =>  0,  // Trinket 2
869
                14  =>  0,  // Back
870
            ]
871
        ],
872
        100 =>  [
873
            1   =>  [
874
                0   =>  0,  // Head
875
                1   =>  0,  // Neck
876
                2   =>  0,  // Shoulders
877
                4   =>  0,  // Chest
878
                5   =>  0,  // Waist
879
                6   =>  0,  // Legs
880
                7   =>  0,  // Feet
881
                8   =>  0,  // Wrists
882
                9   =>  0,  // Hands
883
                10  =>  0,  // Finger 1
884
                11  =>  0,  // Finger 2
885
                12  =>  0,  // Trinket 1
886
                13  =>  0,  // Trinket 2
887
                14  =>  0,  // Back
888
            ],
889
            2   =>  [
890
                0   =>  0,  // Head
891
                1   =>  0,  // Neck
892
                2   =>  0,  // Shoulders
893
                4   =>  0,  // Chest
894
                5   =>  0,  // Waist
895
                6   =>  0,  // Legs
896
                7   =>  0,  // Feet
897
                8   =>  0,  // Wrists
898
                9   =>  0,  // Hands
899
                10  =>  0,  // Finger 1
900
                11  =>  0,  // Finger 2
901
                12  =>  0,  // Trinket 1
902
                13  =>  0,  // Trinket 2
903
                14  =>  0,  // Back
904
            ],
905
            3   =>  [
906
                0   =>  0,  // Head
907
                1   =>  0,  // Neck
908
                2   =>  0,  // Shoulders
909
                4   =>  0,  // Chest
910
                5   =>  0,  // Waist
911
                6   =>  0,  // Legs
912
                7   =>  0,  // Feet
913
                8   =>  0,  // Wrists
914
                9   =>  0,  // Hands
915
                10  =>  0,  // Finger 1
916
                11  =>  0,  // Finger 2
917
                12  =>  0,  // Trinket 1
918
                13  =>  0,  // Trinket 2
919
                14  =>  0,  // Back
920
            ]
921
        ]
922
    ];
923
924
    /**
925
     * Gear set for boosted Warlock
926
     * @var array
927
     */
928
    protected $warlockGear = [
929
        90  =>  [
930
            1   =>  [
931
                0   =>  0,  // Head
932
                1   =>  0,  // Neck
933
                2   =>  0,  // Shoulders
934
                4   =>  0,  // Chest
935
                5   =>  0,  // Waist
936
                6   =>  0,  // Legs
937
                7   =>  0,  // Feet
938
                8   =>  0,  // Wrists
939
                9   =>  0,  // Hands
940
                10  =>  0,  // Finger 1
941
                11  =>  0,  // Finger 2
942
                12  =>  0,  // Trinket 1
943
                13  =>  0,  // Trinket 2
944
                14  =>  0,  // Back
945
            ],
946
            2   =>  [
947
                0   =>  0,  // Head
948
                1   =>  0,  // Neck
949
                2   =>  0,  // Shoulders
950
                4   =>  0,  // Chest
951
                5   =>  0,  // Waist
952
                6   =>  0,  // Legs
953
                7   =>  0,  // Feet
954
                8   =>  0,  // Wrists
955
                9   =>  0,  // Hands
956
                10  =>  0,  // Finger 1
957
                11  =>  0,  // Finger 2
958
                12  =>  0,  // Trinket 1
959
                13  =>  0,  // Trinket 2
960
                14  =>  0,  // Back
961
            ],
962
            3   =>  [
963
                0   =>  0,  // Head
964
                1   =>  0,  // Neck
965
                2   =>  0,  // Shoulders
966
                4   =>  0,  // Chest
967
                5   =>  0,  // Waist
968
                6   =>  0,  // Legs
969
                7   =>  0,  // Feet
970
                8   =>  0,  // Wrists
971
                9   =>  0,  // Hands
972
                10  =>  0,  // Finger 1
973
                11  =>  0,  // Finger 2
974
                12  =>  0,  // Trinket 1
975
                13  =>  0,  // Trinket 2
976
                14  =>  0,  // Back
977
            ]
978
        ],
979
        100 =>  [
980
            1   =>  [
981
                0   =>  0,  // Head
982
                1   =>  0,  // Neck
983
                2   =>  0,  // Shoulders
984
                4   =>  0,  // Chest
985
                5   =>  0,  // Waist
986
                6   =>  0,  // Legs
987
                7   =>  0,  // Feet
988
                8   =>  0,  // Wrists
989
                9   =>  0,  // Hands
990
                10  =>  0,  // Finger 1
991
                11  =>  0,  // Finger 2
992
                12  =>  0,  // Trinket 1
993
                13  =>  0,  // Trinket 2
994
                14  =>  0,  // Back
995
            ],
996
            2   =>  [
997
                0   =>  0,  // Head
998
                1   =>  0,  // Neck
999
                2   =>  0,  // Shoulders
1000
                4   =>  0,  // Chest
1001
                5   =>  0,  // Waist
1002
                6   =>  0,  // Legs
1003
                7   =>  0,  // Feet
1004
                8   =>  0,  // Wrists
1005
                9   =>  0,  // Hands
1006
                10  =>  0,  // Finger 1
1007
                11  =>  0,  // Finger 2
1008
                12  =>  0,  // Trinket 1
1009
                13  =>  0,  // Trinket 2
1010
                14  =>  0,  // Back
1011
            ],
1012
            3   =>  [
1013
                0   =>  0,  // Head
1014
                1   =>  0,  // Neck
1015
                2   =>  0,  // Shoulders
1016
                4   =>  0,  // Chest
1017
                5   =>  0,  // Waist
1018
                6   =>  0,  // Legs
1019
                7   =>  0,  // Feet
1020
                8   =>  0,  // Wrists
1021
                9   =>  0,  // Hands
1022
                10  =>  0,  // Finger 1
1023
                11  =>  0,  // Finger 2
1024
                12  =>  0,  // Trinket 1
1025
                13  =>  0,  // Trinket 2
1026
                14  =>  0,  // Back
1027
            ]
1028
        ]
1029
    ];
1030
1031
    /**
1032
     * Gear set for boosted Monk
1033
     * @var array
1034
     */
1035
    protected $monkGear = [
1036
        90  =>  [
1037
            1   =>  [
1038
                0   =>  0,  // Head
1039
                1   =>  0,  // Neck
1040
                2   =>  0,  // Shoulders
1041
                4   =>  0,  // Chest
1042
                5   =>  0,  // Waist
1043
                6   =>  0,  // Legs
1044
                7   =>  0,  // Feet
1045
                8   =>  0,  // Wrists
1046
                9   =>  0,  // Hands
1047
                10  =>  0,  // Finger 1
1048
                11  =>  0,  // Finger 2
1049
                12  =>  0,  // Trinket 1
1050
                13  =>  0,  // Trinket 2
1051
                14  =>  0,  // Back
1052
            ],
1053
            2   =>  [
1054
                0   =>  0,  // Head
1055
                1   =>  0,  // Neck
1056
                2   =>  0,  // Shoulders
1057
                4   =>  0,  // Chest
1058
                5   =>  0,  // Waist
1059
                6   =>  0,  // Legs
1060
                7   =>  0,  // Feet
1061
                8   =>  0,  // Wrists
1062
                9   =>  0,  // Hands
1063
                10  =>  0,  // Finger 1
1064
                11  =>  0,  // Finger 2
1065
                12  =>  0,  // Trinket 1
1066
                13  =>  0,  // Trinket 2
1067
                14  =>  0,  // Back
1068
            ],
1069
            3   =>  [
1070
                0   =>  0,  // Head
1071
                1   =>  0,  // Neck
1072
                2   =>  0,  // Shoulders
1073
                4   =>  0,  // Chest
1074
                5   =>  0,  // Waist
1075
                6   =>  0,  // Legs
1076
                7   =>  0,  // Feet
1077
                8   =>  0,  // Wrists
1078
                9   =>  0,  // Hands
1079
                10  =>  0,  // Finger 1
1080
                11  =>  0,  // Finger 2
1081
                12  =>  0,  // Trinket 1
1082
                13  =>  0,  // Trinket 2
1083
                14  =>  0,  // Back
1084
            ]
1085
        ],
1086
        100 =>  [
1087
            1   =>  [
1088
                0   =>  0,  // Head
1089
                1   =>  0,  // Neck
1090
                2   =>  0,  // Shoulders
1091
                4   =>  0,  // Chest
1092
                5   =>  0,  // Waist
1093
                6   =>  0,  // Legs
1094
                7   =>  0,  // Feet
1095
                8   =>  0,  // Wrists
1096
                9   =>  0,  // Hands
1097
                10  =>  0,  // Finger 1
1098
                11  =>  0,  // Finger 2
1099
                12  =>  0,  // Trinket 1
1100
                13  =>  0,  // Trinket 2
1101
                14  =>  0,  // Back
1102
            ],
1103
            2   =>  [
1104
                0   =>  0,  // Head
1105
                1   =>  0,  // Neck
1106
                2   =>  0,  // Shoulders
1107
                4   =>  0,  // Chest
1108
                5   =>  0,  // Waist
1109
                6   =>  0,  // Legs
1110
                7   =>  0,  // Feet
1111
                8   =>  0,  // Wrists
1112
                9   =>  0,  // Hands
1113
                10  =>  0,  // Finger 1
1114
                11  =>  0,  // Finger 2
1115
                12  =>  0,  // Trinket 1
1116
                13  =>  0,  // Trinket 2
1117
                14  =>  0,  // Back
1118
            ],
1119
            3   =>  [
1120
                0   =>  0,  // Head
1121
                1   =>  0,  // Neck
1122
                2   =>  0,  // Shoulders
1123
                4   =>  0,  // Chest
1124
                5   =>  0,  // Waist
1125
                6   =>  0,  // Legs
1126
                7   =>  0,  // Feet
1127
                8   =>  0,  // Wrists
1128
                9   =>  0,  // Hands
1129
                10  =>  0,  // Finger 1
1130
                11  =>  0,  // Finger 2
1131
                12  =>  0,  // Trinket 1
1132
                13  =>  0,  // Trinket 2
1133
                14  =>  0,  // Back
1134
            ]
1135
        ]
1136
    ];
1137
1138
    /**
1139
     * Gear set for boosted Druid
1140
     * @var array
1141
     */
1142
    protected $druidGear = [
1143
        90  =>  [
1144
            1   =>  [
1145
                0   =>  0,  // Head
1146
                1   =>  0,  // Neck
1147
                2   =>  0,  // Shoulders
1148
                4   =>  0,  // Chest
1149
                5   =>  0,  // Waist
1150
                6   =>  0,  // Legs
1151
                7   =>  0,  // Feet
1152
                8   =>  0,  // Wrists
1153
                9   =>  0,  // Hands
1154
                10  =>  0,  // Finger 1
1155
                11  =>  0,  // Finger 2
1156
                12  =>  0,  // Trinket 1
1157
                13  =>  0,  // Trinket 2
1158
                14  =>  0,  // Back
1159
            ],
1160
            2   =>  [
1161
                0   =>  0,  // Head
1162
                1   =>  0,  // Neck
1163
                2   =>  0,  // Shoulders
1164
                4   =>  0,  // Chest
1165
                5   =>  0,  // Waist
1166
                6   =>  0,  // Legs
1167
                7   =>  0,  // Feet
1168
                8   =>  0,  // Wrists
1169
                9   =>  0,  // Hands
1170
                10  =>  0,  // Finger 1
1171
                11  =>  0,  // Finger 2
1172
                12  =>  0,  // Trinket 1
1173
                13  =>  0,  // Trinket 2
1174
                14  =>  0,  // Back
1175
            ],
1176
            3   =>  [
1177
                0   =>  0,  // Head
1178
                1   =>  0,  // Neck
1179
                2   =>  0,  // Shoulders
1180
                4   =>  0,  // Chest
1181
                5   =>  0,  // Waist
1182
                6   =>  0,  // Legs
1183
                7   =>  0,  // Feet
1184
                8   =>  0,  // Wrists
1185
                9   =>  0,  // Hands
1186
                10  =>  0,  // Finger 1
1187
                11  =>  0,  // Finger 2
1188
                12  =>  0,  // Trinket 1
1189
                13  =>  0,  // Trinket 2
1190
                14  =>  0,  // Back
1191
            ],
1192
            4   =>  [
1193
                0   =>  0,  // Head
1194
                1   =>  0,  // Neck
1195
                2   =>  0,  // Shoulders
1196
                4   =>  0,  // Chest
1197
                5   =>  0,  // Waist
1198
                6   =>  0,  // Legs
1199
                7   =>  0,  // Feet
1200
                8   =>  0,  // Wrists
1201
                9   =>  0,  // Hands
1202
                10  =>  0,  // Finger 1
1203
                11  =>  0,  // Finger 2
1204
                12  =>  0,  // Trinket 1
1205
                13  =>  0,  // Trinket 2
1206
                14  =>  0,  // Back
1207
            ]
1208
        ],
1209
        100 =>  [
1210
            1   =>  [
1211
                0   =>  0,  // Head
1212
                1   =>  0,  // Neck
1213
                2   =>  0,  // Shoulders
1214
                4   =>  0,  // Chest
1215
                5   =>  0,  // Waist
1216
                6   =>  0,  // Legs
1217
                7   =>  0,  // Feet
1218
                8   =>  0,  // Wrists
1219
                9   =>  0,  // Hands
1220
                10  =>  0,  // Finger 1
1221
                11  =>  0,  // Finger 2
1222
                12  =>  0,  // Trinket 1
1223
                13  =>  0,  // Trinket 2
1224
                14  =>  0,  // Back
1225
            ],
1226
            2   =>  [
1227
                0   =>  0,  // Head
1228
                1   =>  0,  // Neck
1229
                2   =>  0,  // Shoulders
1230
                4   =>  0,  // Chest
1231
                5   =>  0,  // Waist
1232
                6   =>  0,  // Legs
1233
                7   =>  0,  // Feet
1234
                8   =>  0,  // Wrists
1235
                9   =>  0,  // Hands
1236
                10  =>  0,  // Finger 1
1237
                11  =>  0,  // Finger 2
1238
                12  =>  0,  // Trinket 1
1239
                13  =>  0,  // Trinket 2
1240
                14  =>  0,  // Back
1241
            ],
1242
            3   =>  [
1243
                0   =>  0,  // Head
1244
                1   =>  0,  // Neck
1245
                2   =>  0,  // Shoulders
1246
                4   =>  0,  // Chest
1247
                5   =>  0,  // Waist
1248
                6   =>  0,  // Legs
1249
                7   =>  0,  // Feet
1250
                8   =>  0,  // Wrists
1251
                9   =>  0,  // Hands
1252
                10  =>  0,  // Finger 1
1253
                11  =>  0,  // Finger 2
1254
                12  =>  0,  // Trinket 1
1255
                13  =>  0,  // Trinket 2
1256
                14  =>  0,  // Back
1257
            ],
1258
            4   =>  [
1259
                0   =>  0,  // Head
1260
                1   =>  0,  // Neck
1261
                2   =>  0,  // Shoulders
1262
                4   =>  0,  // Chest
1263
                5   =>  0,  // Waist
1264
                6   =>  0,  // Legs
1265
                7   =>  0,  // Feet
1266
                8   =>  0,  // Wrists
1267
                9   =>  0,  // Hands
1268
                10  =>  0,  // Finger 1
1269
                11  =>  0,  // Finger 2
1270
                12  =>  0,  // Trinket 1
1271
                13  =>  0,  // Trinket 2
1272
                14  =>  0,  // Back
1273
            ]
1274
        ]
1275
    ];
1276
1277
    /**
1278
     * Indicates whether the gearing strategy has been loaded
1279
     * @var bool
1280
     */
1281
    protected $strategyLoaded = false;
1282
1283
    /**
1284
     * GearSets constructor.
1285
     */
1286
    public function __construct()
1287
    {
1288
        $saveFolder = str_replace('Classes\\Boost', 'Data', __DIR__) . DIRECTORY_SEPARATOR;
1289
        $fileName = 'gearingStrategy.json';
1290
        if (file_exists($saveFolder . $fileName)) {
1291
            $data = json_decode(file_get_contents($saveFolder . $fileName), true);
1292
            foreach ($data as $class => $information) {
1293
                $variableName = $class . 'Gear';
1294
                $this->$variableName = $information;
1295
            }
1296
            $this->strategyLoaded = true;
1297
        }
1298
    }
1299
1300
    /**
1301
     * Check if gearing strategy loaded
1302
     */
1303
    public function isGearingStrategyLoaded()
1304
    {
1305
        if (!$this->strategyLoaded) {
1306
            throw new \RuntimeException('Gearing strategy is not loaded!');
1307
        }
1308
    }
1309
1310
1311
    /**
1312
     * Get list of all available classes
1313
     * @return array
1314
     */
1315
    public function getClasses() : array
1316
    {
1317
        return $this->classes;
1318
    }
1319
1320
    /**
1321
     * Get ilvl for specified level
1322
     * @param int $levelID
1323
     * @return int
1324
     */
1325
    public function gearLevels(int $levelID) : int
1326
    {
1327
        return $this->gearLevels[$levelID];
1328
    }
1329
1330
    /**
1331
     * Get relation between game and website slot
1332
     * @param int $slotID
1333
     * @return int
1334
     */
1335
    public function getWebsiteSlots(int $slotID) : int
1336
    {
1337
        return $this->wowDBSlots[$slotID];
1338
    }
1339
1340
    /**
1341
     * Get WoWDB Search Link
1342
     * @return string
1343
     */
1344
    public function getWebsiteSearchLink() : string
1345
    {
1346
        return $this->wowDBSerachLink;
1347
    }
1348
1349
    /**
1350
     * Get gear ilvl relation for level
1351
     * @return array
1352
     */
1353
    public function getLevelsRelation() : array
1354
    {
1355
        return $this->gearLevels;
1356
    }
1357
1358
    /**
1359
     * Convert class id to class name
1360
     * @param int $classID
1361
     * @return string
1362
     */
1363
    public function classIndexToName(int $classID) : string
1364
    {
1365
        return $this->classes[$classID];
1366
    }
1367
1368
    /**
1369
     * Convert class name to class variable
1370
     * @param string $className
1371
     * @param string $whichVariable
1372
     * @return string
1373
     */
1374
    public function classNameToVariable(string $className, string $whichVariable = 'Gear') : string
1375
    {
1376
        return $className . $whichVariable;
1377
    }
1378
1379
    /**
1380
     * Get class data
1381
     * @param string $variableName
1382
     * @return array
1383
     */
1384
    public function getClassVariableData(string $variableName) : array
1385
    {
1386
        return $this->$variableName;
1387
    }
1388
1389
    /**
1390
     * Get class data by name
1391
     * @param int $classID
1392
     * @param int $levelID
1393
     * @param string $whichVariable
1394
     * @return array
1395
     */
1396
    public function getClassDataByLevel(int $classID, int $levelID, string $whichVariable = 'Gear') : array
1397
    {
1398
        $classData = $this->getClassVariableData($this->classNameToVariable($this->classIndexToName($classID), $whichVariable));
1399
        return $classData[$levelID];
1400
    }
1401
}
1402