volleyballsimtypes 0.0.159 → 0.0.161
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/data/models/player.d.ts +4 -0
- package/dist/cjs/src/data/models/player.js +5 -0
- package/dist/cjs/src/data/transformers/player.js +4 -2
- package/dist/cjs/src/formula/stats.d.ts +2 -14
- package/dist/cjs/src/formula/stats.js +1 -1
- package/dist/cjs/src/service/player/index.d.ts +1 -0
- package/dist/cjs/src/service/player/index.js +1 -0
- package/dist/cjs/src/service/player/performance-stats.d.ts +2 -2
- package/dist/cjs/src/service/player/player.d.ts +4 -1
- package/dist/cjs/src/service/player/player.js +3 -1
- package/dist/cjs/src/service/player/rarity.d.ts +14 -0
- package/dist/cjs/src/service/player/rarity.js +18 -0
- package/dist/cjs/src/service/player/trait.js +1 -1
- package/dist/esm/src/data/models/player.d.ts +4 -0
- package/dist/esm/src/data/models/player.js +5 -0
- package/dist/esm/src/data/transformers/player.js +4 -2
- package/dist/esm/src/formula/stats.d.ts +2 -14
- package/dist/esm/src/formula/stats.js +1 -1
- package/dist/esm/src/service/player/index.d.ts +1 -0
- package/dist/esm/src/service/player/index.js +1 -0
- package/dist/esm/src/service/player/performance-stats.d.ts +2 -2
- package/dist/esm/src/service/player/player.d.ts +4 -1
- package/dist/esm/src/service/player/player.js +3 -1
- package/dist/esm/src/service/player/rarity.d.ts +14 -0
- package/dist/esm/src/service/player/rarity.js +15 -0
- package/dist/esm/src/service/player/trait.js +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
3
|
import { CountryId, CountryModel, DraftPickId, DraftPickModel, MatchSetId, MatchSetModel, MatchSetStatsAttributes, MatchSetStatsId, MatchSetStatsModel, PerformanceStatsAttributes, PerformanceStatsId, PerformanceStatsModel, PlayerTeamId, PlayerTeamModel, PlayerTraitId, PlayerTraitModel, SetPositionId, SetPositionModel, TeamId, TeamModel, TraitId, TraitModel } from '.';
|
|
4
|
+
import { Rarity } from '../../service';
|
|
4
5
|
export interface PlayerAttributes {
|
|
5
6
|
player_id: string;
|
|
6
7
|
roles: RoleType[];
|
|
8
|
+
rarity: PlayerRarity;
|
|
7
9
|
first_name: string;
|
|
8
10
|
last_name: string;
|
|
9
11
|
country_id: string;
|
|
@@ -12,11 +14,13 @@ export interface PlayerAttributes {
|
|
|
12
14
|
}
|
|
13
15
|
export type PlayerPk = 'player_id';
|
|
14
16
|
export type RoleType = 'SETTER' | 'LIBERO' | 'OUTSIDE_HITTER' | 'OPPOSITE_HITTER' | 'MIDDLE_BLOCKER';
|
|
17
|
+
export type PlayerRarity = Rarity.COMMON | Rarity.RARE | Rarity.LEGENDARY | Rarity.MYTHIC | Rarity.SPECIAL;
|
|
15
18
|
export type PlayerId = PlayerModel[PlayerPk];
|
|
16
19
|
export type PlayerCreationAttributes = PlayerAttributes;
|
|
17
20
|
export declare class PlayerModel extends Model<PlayerAttributes, PlayerCreationAttributes> implements PlayerAttributes {
|
|
18
21
|
player_id: string;
|
|
19
22
|
roles: RoleType[];
|
|
23
|
+
rarity: PlayerRarity;
|
|
20
24
|
first_name: string;
|
|
21
25
|
last_name: string;
|
|
22
26
|
country_id: string;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PlayerModel = void 0;
|
|
4
4
|
const sequelize_1 = require("sequelize");
|
|
5
|
+
const service_1 = require("../../service");
|
|
5
6
|
class PlayerModel extends sequelize_1.Model {
|
|
6
7
|
static initModel(sequelize) {
|
|
7
8
|
return PlayerModel.init({
|
|
@@ -14,6 +15,10 @@ class PlayerModel extends sequelize_1.Model {
|
|
|
14
15
|
type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.ENUM('SETTER', 'LIBERO', 'OUTSIDE_HITTER', 'OPPOSITE_HITTER', 'MIDDLE_BLOCKER')),
|
|
15
16
|
allowNull: false
|
|
16
17
|
},
|
|
18
|
+
rarity: {
|
|
19
|
+
type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.ENUM(...Object.values(service_1.Rarity))),
|
|
20
|
+
allowNull: false
|
|
21
|
+
},
|
|
17
22
|
first_name: {
|
|
18
23
|
type: sequelize_1.DataTypes.STRING,
|
|
19
24
|
allowNull: false
|
|
@@ -10,7 +10,8 @@ function transformToAttributes(player) {
|
|
|
10
10
|
first_name: player.name.first,
|
|
11
11
|
last_name: player.name.last,
|
|
12
12
|
roles: player.roles.map(_1.transformFromRole),
|
|
13
|
-
PerformanceStat: (0, _1.transformFromPerformanceStats)(player)
|
|
13
|
+
PerformanceStat: (0, _1.transformFromPerformanceStats)(player),
|
|
14
|
+
rarity: player.rarity
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
17
|
exports.transformFromPlayer = transformToAttributes;
|
|
@@ -24,7 +25,8 @@ function transformToObject(model) {
|
|
|
24
25
|
country: (0, _1.transformToCountry)(model.country),
|
|
25
26
|
roles: model.roles.map(_1.transformToRole),
|
|
26
27
|
traits: model.Traits.map(_1.transformToTrait),
|
|
27
|
-
stats: (0, _1.transformToPerformanceStats)(model.PerformanceStat)
|
|
28
|
+
stats: (0, _1.transformToPerformanceStats)(model.PerformanceStat),
|
|
29
|
+
rarity: model.rarity
|
|
28
30
|
});
|
|
29
31
|
}
|
|
30
32
|
exports.transformToPlayer = transformToObject;
|
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
import { PerformanceStats } from '../service';
|
|
1
|
+
import { PerformanceStats, PerformanceStatsParams } from '../service';
|
|
2
2
|
export declare const ALL_STATS: string[];
|
|
3
3
|
export type StatsTuple = typeof ALL_STATS;
|
|
4
4
|
export type Stats = StatsTuple[number];
|
|
5
5
|
export interface StatFormula {
|
|
6
6
|
statName: Stats;
|
|
7
|
-
weight:
|
|
8
|
-
serve: number;
|
|
9
|
-
setting: number;
|
|
10
|
-
pass: number;
|
|
11
|
-
reception: number;
|
|
12
|
-
spike: number;
|
|
13
|
-
backAttack: number;
|
|
14
|
-
jump: number;
|
|
15
|
-
block: number;
|
|
16
|
-
awareness: number;
|
|
17
|
-
defense: number;
|
|
18
|
-
stamina: number;
|
|
19
|
-
};
|
|
7
|
+
weight: PerformanceStatsParams;
|
|
20
8
|
}
|
|
21
9
|
export declare const statsFormula: StatFormula[];
|
|
22
10
|
export declare function calculateScore(performanceStats: PerformanceStats, statName: Stats): number;
|
|
@@ -12,7 +12,7 @@ function calculateScore(performanceStats, statName) {
|
|
|
12
12
|
if (weights == null)
|
|
13
13
|
throw new Error('COULD_NOT_FIND_ROLE_WEIGHT');
|
|
14
14
|
const score = Object.entries(weights.weight)
|
|
15
|
-
.reduce((
|
|
15
|
+
.reduce((total, [key, value]) => total + value * performanceStats[key], 0);
|
|
16
16
|
return Math.round(score);
|
|
17
17
|
}
|
|
18
18
|
exports.calculateScore = calculateScore;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
interface PerformanceStatsParams {
|
|
1
|
+
export interface PerformanceStatsParams {
|
|
2
2
|
readonly setting: number;
|
|
3
3
|
readonly pass: number;
|
|
4
4
|
readonly reception: number;
|
|
@@ -11,6 +11,7 @@ interface PerformanceStatsParams {
|
|
|
11
11
|
readonly defense: number;
|
|
12
12
|
readonly stamina: number;
|
|
13
13
|
}
|
|
14
|
+
export type PerformanceStatsKey = keyof PerformanceStatsParams;
|
|
14
15
|
export declare class PerformanceStats {
|
|
15
16
|
readonly setting: number;
|
|
16
17
|
readonly pass: number;
|
|
@@ -27,4 +28,3 @@ export declare class PerformanceStats {
|
|
|
27
28
|
toString(): string;
|
|
28
29
|
static fromAverage(average: number): PerformanceStats;
|
|
29
30
|
}
|
|
30
|
-
export {};
|
|
@@ -3,6 +3,7 @@ import { Role } from './role';
|
|
|
3
3
|
import { Trait } from './trait';
|
|
4
4
|
import { Country } from '../country';
|
|
5
5
|
import * as GeneralStat from '../../formula/stats';
|
|
6
|
+
import { Rarity } from './rarity';
|
|
6
7
|
export declare class Stat {
|
|
7
8
|
readonly name: GeneralStat.Stats;
|
|
8
9
|
readonly value: number;
|
|
@@ -19,6 +20,7 @@ interface PlayerParams {
|
|
|
19
20
|
readonly stats: PerformanceStats;
|
|
20
21
|
readonly roles: Role[];
|
|
21
22
|
readonly traits: Trait[];
|
|
23
|
+
readonly rarity: Rarity;
|
|
22
24
|
}
|
|
23
25
|
export declare class Name {
|
|
24
26
|
readonly first: string;
|
|
@@ -37,7 +39,8 @@ export declare class Player {
|
|
|
37
39
|
readonly roles: Role[];
|
|
38
40
|
readonly traits: Trait[];
|
|
39
41
|
readonly generalStats: Stat[];
|
|
40
|
-
|
|
42
|
+
readonly rarity: Rarity;
|
|
43
|
+
constructor({ id, name, country, stats, roles, traits, rarity }: PlayerParams);
|
|
41
44
|
static sortPlayers(roles: Role[]): (p1: Player, p2: Player) => number;
|
|
42
45
|
static compareStats(p1: Player, p2: Player): number;
|
|
43
46
|
canPlayLibero(): boolean;
|
|
@@ -48,7 +48,7 @@ class Name {
|
|
|
48
48
|
}
|
|
49
49
|
exports.Name = Name;
|
|
50
50
|
class Player {
|
|
51
|
-
constructor({ id, name, country, stats, roles, traits }) {
|
|
51
|
+
constructor({ id, name, country, stats, roles, traits, rarity }) {
|
|
52
52
|
(0, utils_1.validateUUID)(id);
|
|
53
53
|
this.id = id;
|
|
54
54
|
this.name = name;
|
|
@@ -56,6 +56,7 @@ class Player {
|
|
|
56
56
|
this.stats = stats;
|
|
57
57
|
this.roles = roles;
|
|
58
58
|
this.traits = traits;
|
|
59
|
+
this.rarity = rarity;
|
|
59
60
|
this.generalStats = GeneralStat.ALL_STATS.map(stat => ({
|
|
60
61
|
name: stat,
|
|
61
62
|
value: GeneralStat.calculateScore(stats, stat)
|
|
@@ -103,6 +104,7 @@ class Player {
|
|
|
103
104
|
name: this.name.toString(),
|
|
104
105
|
country: this.country.toString(),
|
|
105
106
|
stats: this.stats.toString(),
|
|
107
|
+
rarity: this.rarity,
|
|
106
108
|
roles: `[${this.roles.map(r => r.toString()).join(',')}]`,
|
|
107
109
|
traits: `[${this.traits.map(r => r.toString()).join(',')}]`,
|
|
108
110
|
generalStats: `[${this.generalStats.map(r => r.toString()).join(',')}]`
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum Rarity {
|
|
2
|
+
COMMON = "COMMON",
|
|
3
|
+
RARE = "RARE",
|
|
4
|
+
LEGENDARY = "LEGENDARY",
|
|
5
|
+
MYTHIC = "MYTHIC",
|
|
6
|
+
SPECIAL = "SPECIAL"
|
|
7
|
+
}
|
|
8
|
+
export declare const RarityRanges: {
|
|
9
|
+
COMMON: number[];
|
|
10
|
+
RARE: number[];
|
|
11
|
+
LEGENDARY: number[];
|
|
12
|
+
MYTHIC: number[];
|
|
13
|
+
SPECIAL: number[];
|
|
14
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RarityRanges = exports.Rarity = void 0;
|
|
4
|
+
var Rarity;
|
|
5
|
+
(function (Rarity) {
|
|
6
|
+
Rarity["COMMON"] = "COMMON";
|
|
7
|
+
Rarity["RARE"] = "RARE";
|
|
8
|
+
Rarity["LEGENDARY"] = "LEGENDARY";
|
|
9
|
+
Rarity["MYTHIC"] = "MYTHIC";
|
|
10
|
+
Rarity["SPECIAL"] = "SPECIAL";
|
|
11
|
+
})(Rarity = exports.Rarity || (exports.Rarity = {}));
|
|
12
|
+
exports.RarityRanges = {
|
|
13
|
+
[Rarity.COMMON]: [0, 50],
|
|
14
|
+
[Rarity.RARE]: [51, 70],
|
|
15
|
+
[Rarity.LEGENDARY]: [71, 85],
|
|
16
|
+
[Rarity.MYTHIC]: [86, 98],
|
|
17
|
+
[Rarity.SPECIAL]: [99, 100]
|
|
18
|
+
};
|
|
@@ -72,7 +72,7 @@ class Trait {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
exports.Trait = Trait;
|
|
75
|
-
// A Setter gets a bonus to their score and the receiving attacker gets a bonus as well.
|
|
75
|
+
// A Setter gets a bonus to their score, and the receiving attacker gets a bonus as well.
|
|
76
76
|
// Stacks with attacker bonus
|
|
77
77
|
Trait.MASTER_MIND = new Trait({
|
|
78
78
|
id: '0117a315-a743-43e3-9ec2-ad5cf700ef08',
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
3
|
import { CountryId, CountryModel, DraftPickId, DraftPickModel, MatchSetId, MatchSetModel, MatchSetStatsAttributes, MatchSetStatsId, MatchSetStatsModel, PerformanceStatsAttributes, PerformanceStatsId, PerformanceStatsModel, PlayerTeamId, PlayerTeamModel, PlayerTraitId, PlayerTraitModel, SetPositionId, SetPositionModel, TeamId, TeamModel, TraitId, TraitModel } from '.';
|
|
4
|
+
import { Rarity } from '../../service';
|
|
4
5
|
export interface PlayerAttributes {
|
|
5
6
|
player_id: string;
|
|
6
7
|
roles: RoleType[];
|
|
8
|
+
rarity: PlayerRarity;
|
|
7
9
|
first_name: string;
|
|
8
10
|
last_name: string;
|
|
9
11
|
country_id: string;
|
|
@@ -12,11 +14,13 @@ export interface PlayerAttributes {
|
|
|
12
14
|
}
|
|
13
15
|
export type PlayerPk = 'player_id';
|
|
14
16
|
export type RoleType = 'SETTER' | 'LIBERO' | 'OUTSIDE_HITTER' | 'OPPOSITE_HITTER' | 'MIDDLE_BLOCKER';
|
|
17
|
+
export type PlayerRarity = Rarity.COMMON | Rarity.RARE | Rarity.LEGENDARY | Rarity.MYTHIC | Rarity.SPECIAL;
|
|
15
18
|
export type PlayerId = PlayerModel[PlayerPk];
|
|
16
19
|
export type PlayerCreationAttributes = PlayerAttributes;
|
|
17
20
|
export declare class PlayerModel extends Model<PlayerAttributes, PlayerCreationAttributes> implements PlayerAttributes {
|
|
18
21
|
player_id: string;
|
|
19
22
|
roles: RoleType[];
|
|
23
|
+
rarity: PlayerRarity;
|
|
20
24
|
first_name: string;
|
|
21
25
|
last_name: string;
|
|
22
26
|
country_id: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DataTypes, Model } from 'sequelize';
|
|
2
|
+
import { Rarity } from '../../service';
|
|
2
3
|
export class PlayerModel extends Model {
|
|
3
4
|
static initModel(sequelize) {
|
|
4
5
|
return PlayerModel.init({
|
|
@@ -11,6 +12,10 @@ export class PlayerModel extends Model {
|
|
|
11
12
|
type: DataTypes.ARRAY(DataTypes.ENUM('SETTER', 'LIBERO', 'OUTSIDE_HITTER', 'OPPOSITE_HITTER', 'MIDDLE_BLOCKER')),
|
|
12
13
|
allowNull: false
|
|
13
14
|
},
|
|
15
|
+
rarity: {
|
|
16
|
+
type: DataTypes.ARRAY(DataTypes.ENUM(...Object.values(Rarity))),
|
|
17
|
+
allowNull: false
|
|
18
|
+
},
|
|
14
19
|
first_name: {
|
|
15
20
|
type: DataTypes.STRING,
|
|
16
21
|
allowNull: false
|
|
@@ -7,7 +7,8 @@ function transformToAttributes(player) {
|
|
|
7
7
|
first_name: player.name.first,
|
|
8
8
|
last_name: player.name.last,
|
|
9
9
|
roles: player.roles.map(transformFromRole),
|
|
10
|
-
PerformanceStat: transformFromPerformanceStats(player)
|
|
10
|
+
PerformanceStat: transformFromPerformanceStats(player),
|
|
11
|
+
rarity: player.rarity
|
|
11
12
|
};
|
|
12
13
|
}
|
|
13
14
|
function transformToObject(model) {
|
|
@@ -20,7 +21,8 @@ function transformToObject(model) {
|
|
|
20
21
|
country: transformToCountry(model.country),
|
|
21
22
|
roles: model.roles.map(transformToRole),
|
|
22
23
|
traits: model.Traits.map(transformToTrait),
|
|
23
|
-
stats: transformToPerformanceStats(model.PerformanceStat)
|
|
24
|
+
stats: transformToPerformanceStats(model.PerformanceStat),
|
|
25
|
+
rarity: model.rarity
|
|
24
26
|
});
|
|
25
27
|
}
|
|
26
28
|
export { transformToObject as transformToPlayer, transformToAttributes as transformFromPlayer };
|
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
import { PerformanceStats } from '../service';
|
|
1
|
+
import { PerformanceStats, PerformanceStatsParams } from '../service';
|
|
2
2
|
export declare const ALL_STATS: string[];
|
|
3
3
|
export type StatsTuple = typeof ALL_STATS;
|
|
4
4
|
export type Stats = StatsTuple[number];
|
|
5
5
|
export interface StatFormula {
|
|
6
6
|
statName: Stats;
|
|
7
|
-
weight:
|
|
8
|
-
serve: number;
|
|
9
|
-
setting: number;
|
|
10
|
-
pass: number;
|
|
11
|
-
reception: number;
|
|
12
|
-
spike: number;
|
|
13
|
-
backAttack: number;
|
|
14
|
-
jump: number;
|
|
15
|
-
block: number;
|
|
16
|
-
awareness: number;
|
|
17
|
-
defense: number;
|
|
18
|
-
stamina: number;
|
|
19
|
-
};
|
|
7
|
+
weight: PerformanceStatsParams;
|
|
20
8
|
}
|
|
21
9
|
export declare const statsFormula: StatFormula[];
|
|
22
10
|
export declare function calculateScore(performanceStats: PerformanceStats, statName: Stats): number;
|
|
@@ -6,6 +6,6 @@ export function calculateScore(performanceStats, statName) {
|
|
|
6
6
|
if (weights == null)
|
|
7
7
|
throw new Error('COULD_NOT_FIND_ROLE_WEIGHT');
|
|
8
8
|
const score = Object.entries(weights.weight)
|
|
9
|
-
.reduce((
|
|
9
|
+
.reduce((total, [key, value]) => total + value * performanceStats[key], 0);
|
|
10
10
|
return Math.round(score);
|
|
11
11
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
interface PerformanceStatsParams {
|
|
1
|
+
export interface PerformanceStatsParams {
|
|
2
2
|
readonly setting: number;
|
|
3
3
|
readonly pass: number;
|
|
4
4
|
readonly reception: number;
|
|
@@ -11,6 +11,7 @@ interface PerformanceStatsParams {
|
|
|
11
11
|
readonly defense: number;
|
|
12
12
|
readonly stamina: number;
|
|
13
13
|
}
|
|
14
|
+
export type PerformanceStatsKey = keyof PerformanceStatsParams;
|
|
14
15
|
export declare class PerformanceStats {
|
|
15
16
|
readonly setting: number;
|
|
16
17
|
readonly pass: number;
|
|
@@ -27,4 +28,3 @@ export declare class PerformanceStats {
|
|
|
27
28
|
toString(): string;
|
|
28
29
|
static fromAverage(average: number): PerformanceStats;
|
|
29
30
|
}
|
|
30
|
-
export {};
|
|
@@ -3,6 +3,7 @@ import { Role } from './role';
|
|
|
3
3
|
import { Trait } from './trait';
|
|
4
4
|
import { Country } from '../country';
|
|
5
5
|
import * as GeneralStat from '../../formula/stats';
|
|
6
|
+
import { Rarity } from './rarity';
|
|
6
7
|
export declare class Stat {
|
|
7
8
|
readonly name: GeneralStat.Stats;
|
|
8
9
|
readonly value: number;
|
|
@@ -19,6 +20,7 @@ interface PlayerParams {
|
|
|
19
20
|
readonly stats: PerformanceStats;
|
|
20
21
|
readonly roles: Role[];
|
|
21
22
|
readonly traits: Trait[];
|
|
23
|
+
readonly rarity: Rarity;
|
|
22
24
|
}
|
|
23
25
|
export declare class Name {
|
|
24
26
|
readonly first: string;
|
|
@@ -37,7 +39,8 @@ export declare class Player {
|
|
|
37
39
|
readonly roles: Role[];
|
|
38
40
|
readonly traits: Trait[];
|
|
39
41
|
readonly generalStats: Stat[];
|
|
40
|
-
|
|
42
|
+
readonly rarity: Rarity;
|
|
43
|
+
constructor({ id, name, country, stats, roles, traits, rarity }: PlayerParams);
|
|
41
44
|
static sortPlayers(roles: Role[]): (p1: Player, p2: Player) => number;
|
|
42
45
|
static compareStats(p1: Player, p2: Player): number;
|
|
43
46
|
canPlayLibero(): boolean;
|
|
@@ -20,7 +20,7 @@ export class Name {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
export class Player {
|
|
23
|
-
constructor({ id, name, country, stats, roles, traits }) {
|
|
23
|
+
constructor({ id, name, country, stats, roles, traits, rarity }) {
|
|
24
24
|
validateUUID(id);
|
|
25
25
|
this.id = id;
|
|
26
26
|
this.name = name;
|
|
@@ -28,6 +28,7 @@ export class Player {
|
|
|
28
28
|
this.stats = stats;
|
|
29
29
|
this.roles = roles;
|
|
30
30
|
this.traits = traits;
|
|
31
|
+
this.rarity = rarity;
|
|
31
32
|
this.generalStats = GeneralStat.ALL_STATS.map(stat => ({
|
|
32
33
|
name: stat,
|
|
33
34
|
value: GeneralStat.calculateScore(stats, stat)
|
|
@@ -75,6 +76,7 @@ export class Player {
|
|
|
75
76
|
name: this.name.toString(),
|
|
76
77
|
country: this.country.toString(),
|
|
77
78
|
stats: this.stats.toString(),
|
|
79
|
+
rarity: this.rarity,
|
|
78
80
|
roles: `[${this.roles.map(r => r.toString()).join(',')}]`,
|
|
79
81
|
traits: `[${this.traits.map(r => r.toString()).join(',')}]`,
|
|
80
82
|
generalStats: `[${this.generalStats.map(r => r.toString()).join(',')}]`
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum Rarity {
|
|
2
|
+
COMMON = "COMMON",
|
|
3
|
+
RARE = "RARE",
|
|
4
|
+
LEGENDARY = "LEGENDARY",
|
|
5
|
+
MYTHIC = "MYTHIC",
|
|
6
|
+
SPECIAL = "SPECIAL"
|
|
7
|
+
}
|
|
8
|
+
export declare const RarityRanges: {
|
|
9
|
+
COMMON: number[];
|
|
10
|
+
RARE: number[];
|
|
11
|
+
LEGENDARY: number[];
|
|
12
|
+
MYTHIC: number[];
|
|
13
|
+
SPECIAL: number[];
|
|
14
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export var Rarity;
|
|
2
|
+
(function (Rarity) {
|
|
3
|
+
Rarity["COMMON"] = "COMMON";
|
|
4
|
+
Rarity["RARE"] = "RARE";
|
|
5
|
+
Rarity["LEGENDARY"] = "LEGENDARY";
|
|
6
|
+
Rarity["MYTHIC"] = "MYTHIC";
|
|
7
|
+
Rarity["SPECIAL"] = "SPECIAL";
|
|
8
|
+
})(Rarity || (Rarity = {}));
|
|
9
|
+
export const RarityRanges = {
|
|
10
|
+
[Rarity.COMMON]: [0, 50],
|
|
11
|
+
[Rarity.RARE]: [51, 70],
|
|
12
|
+
[Rarity.LEGENDARY]: [71, 85],
|
|
13
|
+
[Rarity.MYTHIC]: [86, 98],
|
|
14
|
+
[Rarity.SPECIAL]: [99, 100]
|
|
15
|
+
};
|
|
@@ -45,7 +45,7 @@ export class Trait {
|
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
// A Setter gets a bonus to their score and the receiving attacker gets a bonus as well.
|
|
48
|
+
// A Setter gets a bonus to their score, and the receiving attacker gets a bonus as well.
|
|
49
49
|
// Stacks with attacker bonus
|
|
50
50
|
Trait.MASTER_MIND = new Trait({
|
|
51
51
|
id: '0117a315-a743-43e3-9ec2-ad5cf700ef08',
|