11const divide = require ( '../../utils/divide' ) ;
2+
3+ class VampireZRole {
4+ /**
5+ * @param {object } data VampireZ data
6+ * @param {string } role VampireZ Role
7+ */
8+ constructor ( data , role ) {
9+ /**
10+ * Kills
11+ * @type {number }
12+ */
13+ this . kills = data [ `${ role } _kills` ] ;
14+ /**
15+ * Deaths
16+ * @type {number }
17+ */
18+ this . deaths = data [ `${ role } _deaths` ] ;
19+ /**
20+ * KDRatio
21+ * @type {number }
22+ */
23+ this . KDRatio = divide ( this . kills , this . deaths ) ;
24+ /**
25+ * Wins
26+ * @type {number }
27+ */
28+ this . wins = data [ `${ role } _wins` ] ;
29+ }
30+ }
31+
232/**
333 * VampireZ class
434 */
@@ -13,48 +43,51 @@ class VampireZ {
1343 */
1444 this . coins = data . coins || 0 ;
1545 /**
16- * Role Human
17- * @type {VampireZHumanStats }
46+ * Gold Bought
47+ * @type {number }
1848 */
19- this . human = {
20- kills : data . human_kills || 0 ,
21- deaths : data . human_deaths || 0 ,
22- KDRatio : divide ( data . human_kills , data . human_wins ) ,
23- wins : data . human_wins || 0
24- } ;
49+ this . goldBought = data . gold_bought || 0 ;
2550 /**
26- * Role Zombie
27- * @type {VampireZZombieStats }
51+ * Blood
52+ * @type {boolean }
53+ */
54+ this . blood = data . blood || false ;
55+ /**
56+ * Zombie Kills
57+ * @type {number }
2858 */
29- this . zombie = {
30- kills : data . zombie_kills || 0
31- } ;
59+ this . zombieKills = data . zombie_kills || 0 ;
3260 /**
33- * Role Vampire
34- * @type {VampireZVampireStats }
61+ * Human Stats
62+ * @type {VampireZRole }
3563 */
36- this . vampire = {
37- kills : data . vampire_kills || 0 ,
38- deaths : data . vampire_deaths || 0 ,
39- KDRatio : divide ( data . vampire_kills , data . vampire_wins )
40- } ;
64+ this . human = new VampireZRole ( data , 'human' ) ;
65+ /**
66+ * Vampire Stats
67+ * @type {VampireZRole }
68+ */
69+ this . vampire = new VampireZRole ( data , 'vampire' ) ;
70+ /**
71+ * Kills
72+ * @type {number }
73+ */
74+ this . kills = this . human . kills + this . vampire . kills ;
75+ /**
76+ * Deaths
77+ * @type {number }
78+ */
79+ this . deaths = this . human . deaths + this . vampire . deaths ;
80+ /**
81+ * KDRatio
82+ * @type {number }
83+ */
84+ this . KDRatio = divide ( this . kills , this . deaths ) ;
85+ /**
86+ * Wins
87+ * @type {number }
88+ */
89+ this . wins = this . human . wins + this . vampire . wins ;
4190 }
4291}
43- /**
44- * @typedef {object } VampireZHumanStats
45- * @property {number } kills Kills
46- * @property {number } deaths Deaths
47- * @property {number } KDRatio Kill Death ratio
48- * @property {number } wins Wins
49- */
50- /**
51- * @typedef {object } VampireZZombieStats
52- * @property {number } kills Kills
53- */
54- /**
55- * @typedef {object } VampireZVampireStats
56- * @property {number } kills Kills
57- * @property {number } deaths Deaths
58- * @property {number } KDRatio Kill Death ratio
59- */
92+
6093module . exports = VampireZ ;
0 commit comments