@pkmn/randoms 0.10.7 → 0.10.9

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.
@@ -0,0 +1,50 @@
1
+ import { RandomGen2Teams } from './gen2';
2
+ import { ID, IDEntry, PokemonSet, RandomTeamsTypes, Species } from '@pkmn/sim';
3
+ interface Gen1RandomBattleSpecies {
4
+ level?: number;
5
+ moves?: ID[];
6
+ essentialMoves?: ID[];
7
+ exclusiveMoves?: ID[];
8
+ comboMoves?: ID[];
9
+ }
10
+ export declare class RandomGen1Teams extends RandomGen2Teams {
11
+ randomData: {
12
+ [species: IDEntry]: Gen1RandomBattleSpecies;
13
+ };
14
+ randomCCTeam(): {
15
+ name: string;
16
+ species: string;
17
+ moves: ID[];
18
+ gender: boolean;
19
+ ability: string;
20
+ evs: {
21
+ hp: number;
22
+ atk: number;
23
+ def: number;
24
+ spa: number;
25
+ spd: number;
26
+ spe: number;
27
+ };
28
+ ivs: {
29
+ hp: number;
30
+ atk: number;
31
+ def: number;
32
+ spa: number;
33
+ spd: number;
34
+ spe: number;
35
+ };
36
+ item: string;
37
+ level: number;
38
+ happiness: number;
39
+ shiny: boolean;
40
+ nature: string;
41
+ }[];
42
+ randomTeam(): RandomTeamsTypes.RandomSet[];
43
+ getLevel(species: Species): number;
44
+ /**
45
+ * Random set generation for Gen 1 Random Battles.
46
+ */
47
+ randomSet(species: string | Species): RandomTeamsTypes.RandomSet;
48
+ randomHCTeam(): PokemonSet[];
49
+ }
50
+ export default RandomGen1Teams;
@@ -0,0 +1,18 @@
1
+ import { MoveCounter } from '././gen9';
2
+ import { RandomGen3Teams } from './gen3';
3
+ import { Format, IDEntry, ModdedDex, PRNG, PRNGSeed, RandomTeamsTypes, Species } from '@pkmn/sim';
4
+ export declare class RandomGen2Teams extends RandomGen3Teams {
5
+ randomSets: {
6
+ [species: IDEntry]: RandomTeamsTypes.RandomSpeciesData;
7
+ };
8
+ constructor(dex: ModdedDex, format: Format, prng: PRNG | PRNGSeed | null);
9
+ cullMovePool(types: Set<string>, moves: Set<string>, abilities: {} | undefined, counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): void;
10
+ randomMoveset(types: Set<string>, abilities: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, movePool: string[], preferredType: string, role: RandomTeamsTypes.Role): Set<string>;
11
+ getItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string;
12
+ randomSet(species: string | Species, teamDetails?: RandomTeamsTypes.TeamDetails, isLead?: boolean): RandomTeamsTypes.RandomSet;
13
+ /**
14
+ * Checks if the new species is compatible with the other mons currently on the team.
15
+ */
16
+ getPokemonCompatibility(species: Species, pokemon: RandomTeamsTypes.RandomSet[]): boolean;
17
+ }
18
+ export default RandomGen2Teams;
@@ -0,0 +1,23 @@
1
+ import { MoveCounter } from '././gen9';
2
+ import { RandomGen4Teams } from './gen4';
3
+ import { Format, ModdedDex, PRNG, PRNGSeed, RandomTeamsTypes, Species } from '@pkmn/sim';
4
+ export declare class RandomGen3Teams extends RandomGen4Teams {
5
+ battleHasDitto: boolean;
6
+ battleHasWobbuffet: boolean;
7
+ randomSets: {
8
+ [species: string]: RandomTeamsTypes.RandomSpeciesData;
9
+ };
10
+ constructor(dex: ModdedDex, format: Format, prng: PRNG | PRNGSeed | null);
11
+ cullMovePool(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): void;
12
+ randomMoveset(types: Set<string>, abilities: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, movePool: string[], preferredType: string, role: RandomTeamsTypes.Role): Set<string>;
13
+ shouldCullAbility(ability: string, types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): boolean;
14
+ getAbility(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): string;
15
+ getItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string;
16
+ randomSet(species: string | Species, teamDetails?: RandomTeamsTypes.TeamDetails, isLead?: boolean): RandomTeamsTypes.RandomSet;
17
+ /**
18
+ * Checks if the new species is compatible with the other mons currently on the team.
19
+ */
20
+ getPokemonCompatibility(species: Species, pokemon: RandomTeamsTypes.RandomSet[]): boolean;
21
+ randomTeam(): RandomTeamsTypes.RandomSet[];
22
+ }
23
+ export default RandomGen3Teams;
@@ -0,0 +1,21 @@
1
+ import { MoveCounter } from './gen9';
2
+ import { RandomGen5Teams } from './gen5';
3
+ import { Format, ModdedDex, PRNG, PRNGSeed, RandomTeamsTypes, Species } from '@pkmn/sim';
4
+ export declare class RandomGen4Teams extends RandomGen5Teams {
5
+ randomSets: {
6
+ [species: string]: RandomTeamsTypes.RandomSpeciesData;
7
+ };
8
+ constructor(dex: ModdedDex, format: Format, prng: PRNG | PRNGSeed | null);
9
+ cullMovePool(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): void;
10
+ randomMoveset(types: Set<string>, abilities: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, movePool: string[], preferredType: string, role: RandomTeamsTypes.Role): Set<string>;
11
+ shouldCullAbility(ability: string, types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): boolean;
12
+ getAbility(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): string;
13
+ getPriorityItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string | undefined;
14
+ getItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string;
15
+ randomSet(species: string | Species, teamDetails?: RandomTeamsTypes.TeamDetails, isLead?: boolean): RandomTeamsTypes.RandomSet;
16
+ /**
17
+ * Checks if the new species is compatible with the other mons currently on the team.
18
+ */
19
+ getPokemonCompatibility(species: Species, pokemon: RandomTeamsTypes.RandomSet[]): boolean;
20
+ }
21
+ export default RandomGen4Teams;
@@ -0,0 +1,22 @@
1
+ import { MoveCounter } from './gen9';
2
+ import { RandomGen6Teams } from './gen6';
3
+ import { Format, ModdedDex, PRNG, PRNGSeed, RandomTeamsTypes, Species } from '@pkmn/sim';
4
+ export declare class RandomGen5Teams extends RandomGen6Teams {
5
+ randomSets: {
6
+ [species: string]: RandomTeamsTypes.RandomSpeciesData;
7
+ };
8
+ constructor(dex: ModdedDex, format: Format, prng: PRNG | PRNGSeed | null);
9
+ cullMovePool(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): void;
10
+ randomMoveset(types: Set<string>, abilities: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, movePool: string[], preferredType: string, role: RandomTeamsTypes.Role): Set<string>;
11
+ shouldCullAbility(ability: string, types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): boolean;
12
+ getAbility(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): string;
13
+ getPriorityItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string | undefined;
14
+ getItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string;
15
+ randomSet(species: string | Species, teamDetails?: RandomTeamsTypes.TeamDetails, isLead?: boolean): RandomTeamsTypes.RandomSet;
16
+ /**
17
+ * Checks if the new species is compatible with the other mons currently on the team.
18
+ */
19
+ getPokemonCompatibility(species: Species, pokemon: RandomTeamsTypes.RandomSet[]): boolean;
20
+ randomTeam(): RandomTeamsTypes.RandomSet[];
21
+ }
22
+ export default RandomGen5Teams;
@@ -0,0 +1,24 @@
1
+ import { BattleFactorySpecies, RandomGen7Teams } from './gen7';
2
+ import { MoveCounter } from '././gen9';
3
+ import { Format, ModdedDex, PRNG, PRNGSeed, PlayerOptions, RandomTeamsTypes, Species } from '@pkmn/sim';
4
+ export declare class RandomGen6Teams extends RandomGen7Teams {
5
+ randomSets: {
6
+ [species: string]: RandomTeamsTypes.RandomSpeciesData;
7
+ };
8
+ constructor(dex: ModdedDex, format: Format, prng: PRNG | PRNGSeed | null);
9
+ cullMovePool(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): void;
10
+ randomMoveset(types: Set<string>, abilities: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, movePool: string[], preferredType: string, role: RandomTeamsTypes.Role): Set<string>;
11
+ shouldCullAbility(ability: string, types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): boolean;
12
+ getAbility(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): string;
13
+ getPriorityItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string | undefined;
14
+ getItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string;
15
+ randomSet(species: string | Species, teamDetails?: RandomTeamsTypes.TeamDetails, isLead?: boolean): RandomTeamsTypes.RandomSet;
16
+ randomOldGenFactorySets: {
17
+ [format: string]: {
18
+ [species: string]: BattleFactorySpecies;
19
+ };
20
+ };
21
+ randomFactorySet(species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails, tier: string): RandomTeamsTypes.RandomFactorySet | null;
22
+ randomFactoryTeam(side: PlayerOptions, depth?: number): RandomTeamsTypes.RandomFactorySet[];
23
+ }
24
+ export default RandomGen6Teams;
@@ -0,0 +1,52 @@
1
+ import { MoveCounter } from './gen9';
2
+ import { RandomGen8Teams } from './gen8';
3
+ import { AnyObject, Format, ModdedDex, PRNG, PRNGSeed, PlayerOptions, RandomTeamsTypes, SparseStatsTable, Species, StatsTable } from '@pkmn/sim';
4
+ export interface BattleFactorySpecies {
5
+ flags: {
6
+ megaOnly?: 1;
7
+ zmoveOnly?: 1;
8
+ limEevee?: 1;
9
+ };
10
+ sets: BattleFactorySet[];
11
+ }
12
+ interface BattleFactorySet {
13
+ species: string;
14
+ item: string;
15
+ ability: string;
16
+ nature: string;
17
+ moves: string[];
18
+ evs?: Partial<StatsTable>;
19
+ ivs?: Partial<StatsTable>;
20
+ }
21
+ export declare const ZeroAttackHPIVs: {
22
+ [k: string]: SparseStatsTable;
23
+ };
24
+ export declare class RandomGen7Teams extends RandomGen8Teams {
25
+ randomSets: {
26
+ [species: string]: RandomTeamsTypes.RandomSpeciesData;
27
+ };
28
+ constructor(dex: ModdedDex, format: Format, prng: PRNG | PRNGSeed | null);
29
+ cullMovePool(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): void;
30
+ randomMoveset(types: Set<string>, abilities: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, movePool: string[], preferredType: string, role: RandomTeamsTypes.Role): Set<string>;
31
+ shouldCullAbility(ability: string, types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): boolean;
32
+ getAbility(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): string;
33
+ getPriorityItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string | undefined;
34
+ getItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string;
35
+ randomSet(species: string | Species, teamDetails?: RandomTeamsTypes.TeamDetails, isLead?: boolean): RandomTeamsTypes.RandomSet;
36
+ /**
37
+ * Checks if the new species is compatible with the other mons currently on the team.
38
+ */
39
+ getPokemonCompatibility(species: Species, pokemon: RandomTeamsTypes.RandomSet[]): boolean;
40
+ randomTeam(): RandomTeamsTypes.RandomSet[];
41
+ randomOldGenFactorySets: {
42
+ [format: string]: {
43
+ [species: string]: BattleFactorySpecies;
44
+ };
45
+ };
46
+ randomFactorySet(species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails, tier: string): RandomTeamsTypes.RandomFactorySet | null;
47
+ randomFactoryTeam(side: PlayerOptions, depth?: number): RandomTeamsTypes.RandomFactorySet[];
48
+ randomBSSFactorySets: AnyObject;
49
+ randomBSSFactorySet(species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails): RandomTeamsTypes.RandomFactorySet | null;
50
+ randomBSSFactoryTeam(side: PlayerOptions, depth?: number): RandomTeamsTypes.RandomFactorySet[];
51
+ }
52
+ export default RandomGen7Teams;
@@ -0,0 +1,60 @@
1
+ import { MoveCounter, RandomTeams } from './gen9';
2
+ import { AnyObject, Format, ModdedDex, PRNG, PRNGSeed, PlayerOptions, RandomTeamsTypes, Species, StatsTable } from '@pkmn/sim';
3
+ export interface BattleFactorySpecies {
4
+ flags: {
5
+ limEevee?: 1;
6
+ };
7
+ sets: BattleFactorySet[];
8
+ }
9
+ interface BattleFactorySet {
10
+ species: string;
11
+ item: string;
12
+ ability: string;
13
+ nature: string;
14
+ moves: string[];
15
+ evs?: Partial<StatsTable>;
16
+ ivs?: Partial<StatsTable>;
17
+ }
18
+ export declare class RandomGen8Teams extends RandomTeams {
19
+ randomSets: {
20
+ [species: string]: RandomTeamsTypes.RandomSpeciesData;
21
+ };
22
+ constructor(dex: ModdedDex, format: Format, prng: PRNG | PRNGSeed | null);
23
+ cullMovePool(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): void;
24
+ randomMoveset(types: Set<string>, abilities: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, movePool: string[], preferredType: string, role: RandomTeamsTypes.Role): Set<string>;
25
+ shouldCullAbility(ability: string, types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): boolean;
26
+ getAbility(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species): string;
27
+ getPriorityItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string | undefined;
28
+ getItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, preferredType: string, role: RandomTeamsTypes.Role): string;
29
+ randomSet(species: string | Species, teamDetails?: RandomTeamsTypes.TeamDetails, isLead?: boolean): RandomTeamsTypes.RandomSet;
30
+ /**
31
+ * Checks if the new species is compatible with the other mons currently on the team.
32
+ */
33
+ getPokemonCompatibility(species: Species, pokemon: RandomTeamsTypes.RandomSet[]): boolean;
34
+ randomTeam(): RandomTeamsTypes.RandomSet[];
35
+ randomCAP1v1Sets: AnyObject;
36
+ randomCAP1v1Team(): {
37
+ name: string;
38
+ species: string;
39
+ gender: "M" | "F" | "N";
40
+ item: any;
41
+ ability: any;
42
+ shiny: boolean;
43
+ level: number;
44
+ evs: any;
45
+ nature: any;
46
+ ivs: any;
47
+ moves: any;
48
+ }[];
49
+ randomOldGenFactorySets: {
50
+ [format: string]: {
51
+ [species: string]: BattleFactorySpecies;
52
+ };
53
+ };
54
+ randomFactorySet(species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails, tier: string): RandomTeamsTypes.RandomFactorySet | null;
55
+ randomFactoryTeam(side: PlayerOptions, depth?: number): RandomTeamsTypes.RandomFactorySet[];
56
+ randomBSSFactorySets: AnyObject;
57
+ randomBSSFactorySet(species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails): RandomTeamsTypes.RandomFactorySet | null;
58
+ randomBSSFactoryTeam(side: PlayerOptions, depth?: number): RandomTeamsTypes.RandomFactorySet[];
59
+ }
60
+ export default RandomGen8Teams;
@@ -0,0 +1,178 @@
1
+ import { Utils } from './utils';
2
+ import { AnyObject, Format, ID, ModdedDex, Move, PRNG, PRNGSeed, PlayerOptions, PokemonSet, RandomTeamsTypes, RuleTable, Species, StatsTable } from '@pkmn/sim';
3
+ export interface TeamData {
4
+ typeCount: {
5
+ [k: string]: number;
6
+ };
7
+ typeComboCount: {
8
+ [k: string]: number;
9
+ };
10
+ baseFormes: {
11
+ [k: string]: number;
12
+ };
13
+ megaCount?: number;
14
+ zCount?: number;
15
+ wantsTeraCount?: number;
16
+ has: {
17
+ [k: string]: number;
18
+ };
19
+ forceResult: boolean;
20
+ weaknesses: {
21
+ [k: string]: number;
22
+ };
23
+ resistances: {
24
+ [k: string]: number;
25
+ };
26
+ weather?: string;
27
+ eeveeLimCount?: number;
28
+ gigantamax?: boolean;
29
+ }
30
+ export interface BattleFactorySpecies {
31
+ sets: BattleFactorySet[];
32
+ weight: number;
33
+ }
34
+ interface BattleFactorySet {
35
+ species: string;
36
+ weight: number;
37
+ item: string[];
38
+ ability: string[];
39
+ nature: string[];
40
+ moves: string[][];
41
+ teraType: string[];
42
+ gender?: string;
43
+ wantsTera?: boolean;
44
+ evs?: Partial<StatsTable>;
45
+ ivs?: Partial<StatsTable>;
46
+ shiny?: boolean;
47
+ level?: number;
48
+ }
49
+ export declare class MoveCounter extends Utils.Multiset<string> {
50
+ damagingMoves: Set<Move>;
51
+ basePowerMoves: Set<Move>;
52
+ constructor();
53
+ }
54
+ export type MoveEnforcementChecker = (movePool: string[], moves: Set<string>, abilities: string[], types: Set<string>, counter: MoveCounter, species: Species, teamDetails: RandomTeamsTypes.TeamDetails, isLead: boolean, isDoubles: boolean, teraType: string, role: RandomTeamsTypes.Role) => boolean;
55
+ export declare class RandomTeams {
56
+ readonly dex: ModdedDex;
57
+ gen: number;
58
+ factoryTier: string;
59
+ format: Format;
60
+ prng: PRNG;
61
+ noStab: string[];
62
+ priorityPokemon: string[];
63
+ readonly maxTeamSize: number;
64
+ readonly adjustLevel: number | null;
65
+ readonly maxMoveCount: number;
66
+ readonly forceMonotype: string | undefined;
67
+ readonly forceTeraType: string | undefined;
68
+ /**
69
+ * Checkers for move enforcement based on types or other factors
70
+ *
71
+ * returns true to try to force the move type, false otherwise.
72
+ */
73
+ moveEnforcementCheckers: {
74
+ [k: string]: MoveEnforcementChecker;
75
+ };
76
+ /** Used by .getPools() */
77
+ private poolsCacheKey;
78
+ private cachedPool;
79
+ private cachedSpeciesPool;
80
+ protected cachedStatusMoves: ID[];
81
+ constructor(dex: ModdedDex, format: Format, prng: PRNG | PRNGSeed | null);
82
+ setSeed(prng?: PRNG | PRNGSeed): void;
83
+ getTeam(options?: PlayerOptions | null): PokemonSet[];
84
+ randomChance(numerator: number, denominator: number): boolean;
85
+ sample<T>(items: readonly T[]): T;
86
+ sampleIfArray<T>(item: T | T[]): T;
87
+ random(m?: number, n?: number): number;
88
+ /**
89
+ * Remove an element from an unsorted array significantly faster
90
+ * than .splice
91
+ */
92
+ fastPop(list: any[], index: number): any;
93
+ /**
94
+ * Remove a random element from an unsorted array and return it.
95
+ * Uses the battle's RNG if in a battle.
96
+ */
97
+ sampleNoReplace(list: any[]): any;
98
+ /**
99
+ * Removes n random elements from an unsorted array and returns them.
100
+ * If n is less than the array's length, randomly removes and returns all the elements
101
+ * in the array (so the returned array could have length < n).
102
+ */
103
+ multipleSamplesNoReplace<T>(list: T[], n: number): T[];
104
+ /**
105
+ * Check if user has directly tried to ban/unban/restrict things in a custom battle.
106
+ * Doesn't count bans nested inside other formats/rules.
107
+ */
108
+ private hasDirectCustomBanlistChanges;
109
+ /**
110
+ * Inform user when custom bans are unsupported in a team generator.
111
+ */
112
+ protected enforceNoDirectCustomBanlistChanges(): void;
113
+ /**
114
+ * Inform user when complex bans are unsupported in a team generator.
115
+ */
116
+ protected enforceNoDirectComplexBans(): false | undefined;
117
+ /**
118
+ * Validate set element pool size is sufficient to support size requirements after simple bans.
119
+ */
120
+ private enforceCustomPoolSizeNoComplexBans;
121
+ queryMoves(moves: Set<string> | null, species: Species, teraType: string, abilities: string[]): MoveCounter;
122
+ cullMovePool(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, teraType: string, role: RandomTeamsTypes.Role, isDoubles: boolean): void;
123
+ incompatibleMoves(moves: Set<string>, movePool: string[], movesA: string | string[], movesB: string | string[]): void;
124
+ addMove(move: string, moves: Set<string>, types: Set<string>, abilities: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, movePool: string[], teraType: string, role: RandomTeamsTypes.Role, isDoubles?: boolean): MoveCounter;
125
+ getMoveType(move: Move, species: Species, abilities: string[], teraType: string): string;
126
+ randomMoveset(types: Set<string>, abilities: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, movePool: string[], teraType: string, role: RandomTeamsTypes.Role, isDoubles: boolean): Set<string>;
127
+ shouldCullAbility(ability: string, types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, role: RandomTeamsTypes.Role, isLead: boolean, isDoubles: boolean): boolean;
128
+ getAbility(types: Set<string>, moves: Set<string>, abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, isDoubles: boolean, teraType: string, role: RandomTeamsTypes.Role): string;
129
+ getPriorityItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, teraType: string, role: RandomTeamsTypes.Role, isDoubles: boolean): string | undefined;
130
+ /** Item generation specific to Random Doubles */
131
+ getDoublesItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, teraType: string, role: RandomTeamsTypes.Role): string;
132
+ getItem(ability: string, types: Set<string>, moves: Set<string>, counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, isLead: boolean, teraType: string, role: RandomTeamsTypes.Role): string;
133
+ getLevel(species: Species, isDoubles?: boolean): number;
134
+ getForme(species: Species): string;
135
+ randomSet(s: string | Species, teamDetails?: RandomTeamsTypes.TeamDetails, isLead?: boolean, isDoubles?: boolean): RandomTeamsTypes.RandomSet;
136
+ getPokemonPool(type: string, pokemonToExclude: RandomTeamsTypes.RandomSet[] | undefined, isMonotype: boolean | undefined, pokemonList: string[]): [{
137
+ [k: string]: string[];
138
+ }, string[]];
139
+ /**
140
+ * Checks if the new species is compatible with the other mons currently on the team.
141
+ */
142
+ getPokemonCompatibility(species: Species, pokemon: RandomTeamsTypes.RandomSet[], isDoubles?: boolean): boolean;
143
+ randomSets: {
144
+ [species: string]: RandomTeamsTypes.RandomSpeciesData;
145
+ };
146
+ randomDoublesSets: {
147
+ [species: string]: RandomTeamsTypes.RandomSpeciesData;
148
+ };
149
+ randomTeam(): RandomTeamsTypes.RandomSet[];
150
+ randomMegaSets: {
151
+ [species: string]: RandomTeamsTypes.RandomSpeciesData;
152
+ };
153
+ randomMegaInvasionTeam(depth?: number): RandomTeamsTypes.RandomSet[];
154
+ randomCCTeam(): RandomTeamsTypes.RandomSet[];
155
+ private getPools;
156
+ randomNPokemon(n: number, requiredType?: string, minSourceGen?: number, ruleTable?: RuleTable, requireMoves?: boolean): string[];
157
+ randomHCTeam(): PokemonSet[];
158
+ randomFactorySets: {
159
+ [format: string]: {
160
+ [species: string]: BattleFactorySpecies;
161
+ };
162
+ };
163
+ randomFactorySet(species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails, tier: string): RandomTeamsTypes.RandomFactorySet | null;
164
+ randomFactoryTeam(side: PlayerOptions, depth?: number): RandomTeamsTypes.RandomFactorySet[];
165
+ randomBSSFactorySets: AnyObject;
166
+ randomBSSFactorySet(species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails): RandomTeamsTypes.RandomFactorySet | null;
167
+ randomBSSFactoryTeam(side: PlayerOptions, depth?: number): RandomTeamsTypes.RandomFactorySet[];
168
+ randomDraftFactoryMatchups: AnyObject;
169
+ rdfMatchupIndex: number;
170
+ rdfMatchupSide: number;
171
+ randomDraftFactoryTeam(side: PlayerOptions): RandomTeamsTypes.RandomDraftFactorySet[];
172
+ random1v1FactorySets: {
173
+ [species: string]: BattleFactorySpecies;
174
+ };
175
+ random1v1FactorySet(species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails): RandomTeamsTypes.RandomFactorySet | null;
176
+ random1v1FactoryTeam(side: PlayerOptions, depth?: number): RandomTeamsTypes.RandomFactorySet[];
177
+ }
178
+ export default RandomTeams;
package/build/index.d.mts CHANGED
@@ -1,12 +1,10 @@
1
1
  import { Format, PRNG, PRNGSeed, PlayerOptions, PokemonSet } from '@pkmn/sim';
2
-
3
2
  interface TeamGenerator {
4
3
  prng: PRNG;
5
4
  getTeam(options?: PlayerOptions): PokemonSet[];
6
5
  setSeed(prng?: PRNG | PRNGSeed): void;
7
6
  }
8
- declare const TeamGenerators: {
7
+ export declare const TeamGenerators: {
9
8
  getTeamGenerator(format: Format | string, seed?: PRNG | PRNGSeed | null): TeamGenerator;
10
9
  };
11
-
12
- export { TeamGenerators };
10
+ export {};
package/build/index.d.ts CHANGED
@@ -1,12 +1,10 @@
1
1
  import { Format, PRNG, PRNGSeed, PlayerOptions, PokemonSet } from '@pkmn/sim';
2
-
3
2
  interface TeamGenerator {
4
3
  prng: PRNG;
5
4
  getTeam(options?: PlayerOptions): PokemonSet[];
6
5
  setSeed(prng?: PRNG | PRNGSeed): void;
7
6
  }
8
- declare const TeamGenerators: {
7
+ export declare const TeamGenerators: {
9
8
  getTeamGenerator(format: Format | string, seed?: PRNG | PRNGSeed | null): TeamGenerator;
10
9
  };
11
-
12
- export { TeamGenerators };
10
+ export {};