getcompetitive 1.1.0
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/LICENSE +21 -0
- package/README.md +165 -0
- package/dist/archetypes.js +712 -0
- package/dist/archetypes.js.map +1 -0
- package/dist/dex.js +414 -0
- package/dist/dex.js.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/regulations.data.js +854 -0
- package/dist/regulations.data.js.map +1 -0
- package/dist/regulations.js +91 -0
- package/dist/regulations.js.map +1 -0
- package/dist/result.js +50 -0
- package/dist/result.js.map +1 -0
- package/dist/threats.js +336 -0
- package/dist/threats.js.map +1 -0
- package/dist/tools/analyze.js +268 -0
- package/dist/tools/analyze.js.map +1 -0
- package/dist/tools/calc.js +718 -0
- package/dist/tools/calc.js.map +1 -0
- package/dist/tools/data.js +763 -0
- package/dist/tools/data.js.map +1 -0
- package/dist/tools/meta.js +158 -0
- package/dist/tools/meta.js.map +1 -0
- package/dist/tools/regulations.js +332 -0
- package/dist/tools/regulations.js.map +1 -0
- package/dist/tools/schemas.js +13 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/team.js +221 -0
- package/dist/tools/team.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regulations.data.js","sourceRoot":"","sources":["../src/regulations.data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Official Pokémon Champions / VGC regulation sets.
|
|
3
|
+
*
|
|
4
|
+
* Eligible + Mega species lists are scraped from Bulbapedia (which mirrors the
|
|
5
|
+
* official Play! Pokémon rules) by `scripts/extract-regs.mjs` and stored in
|
|
6
|
+
* `regulations.data.json`. They are collapsed to BASE species because VGC
|
|
7
|
+
* Species Clause is by National Pokédex number: every form of an eligible
|
|
8
|
+
* species is legal. Metadata (dates, battle/team rules) is curated here.
|
|
9
|
+
*
|
|
10
|
+
* Data is seasonal and changes each Regulation Set. To update: edit METADATA,
|
|
11
|
+
* then run `node scripts/extract-regs.mjs`.
|
|
12
|
+
*/
|
|
13
|
+
import raw from './regulations.data.js';
|
|
14
|
+
const BATTLE_RULES = {
|
|
15
|
+
battleType: 'Double Battles',
|
|
16
|
+
bringPick: '4 of 6',
|
|
17
|
+
level: 50,
|
|
18
|
+
timers: {
|
|
19
|
+
gameMinutes: 20,
|
|
20
|
+
playerMinutes: 7,
|
|
21
|
+
moveSeconds: 45,
|
|
22
|
+
previewSeconds: 90,
|
|
23
|
+
},
|
|
24
|
+
rounds: 'BO1/BO3 Swiss, BO3 top cut',
|
|
25
|
+
};
|
|
26
|
+
const TEAM_RULES = {
|
|
27
|
+
speciesClause: true,
|
|
28
|
+
itemClause: true,
|
|
29
|
+
autoLevel50: true,
|
|
30
|
+
anyMoveAbility: true,
|
|
31
|
+
};
|
|
32
|
+
const SOURCE = 'https://bulbapedia.bulbagarden.net/wiki/Regulation_Sets_in_Pok%C3%A9mon_Champions';
|
|
33
|
+
const SOURCE_AS_OF = '2026-09-13';
|
|
34
|
+
const METADATA = {
|
|
35
|
+
'm-a': {
|
|
36
|
+
name: 'Regulation Set M-A',
|
|
37
|
+
start: '2026-04-08',
|
|
38
|
+
end: '2026-06-17',
|
|
39
|
+
notes: 'Launch format. Mega Evolution enabled; all Legendary and Restricted Pokémon are banned.',
|
|
40
|
+
},
|
|
41
|
+
'm-b': {
|
|
42
|
+
name: 'Regulation Set M-B',
|
|
43
|
+
start: '2026-06-17',
|
|
44
|
+
end: '2026-09-09',
|
|
45
|
+
notes: 'Second format. Adds 22 Pokémon and 16 Mega Evolutions over M-A.',
|
|
46
|
+
},
|
|
47
|
+
'm-c': {
|
|
48
|
+
name: 'Regulation Set M-C',
|
|
49
|
+
start: '2026-09-09',
|
|
50
|
+
end: '2026-12-02',
|
|
51
|
+
notes: 'Current format. Adds 29 Pokémon and 6 Mega Evolutions over M-B (incl. Mega Absol Z, Mega Salamence, Mega Garchomp Z, Mega Lucario Z, Mega Golisopod, Mega Baxcalibur).',
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
const scraped = raw;
|
|
55
|
+
export const REGULATION_SETS = Object.entries(METADATA).map(([id, meta]) => {
|
|
56
|
+
const data = scraped[id];
|
|
57
|
+
if (!data)
|
|
58
|
+
throw new Error(`Missing scraped data for regulation set "${id}"; run scripts/extract-regs.mjs.`);
|
|
59
|
+
return {
|
|
60
|
+
id,
|
|
61
|
+
name: meta.name,
|
|
62
|
+
game: 'Pokémon Champions',
|
|
63
|
+
start: meta.start,
|
|
64
|
+
end: meta.end,
|
|
65
|
+
battleRules: BATTLE_RULES,
|
|
66
|
+
teamRules: TEAM_RULES,
|
|
67
|
+
megaEvolution: { allowed: true, perBattle: 1, species: data.megaEvolutions },
|
|
68
|
+
eligibleSpecies: data.eligibleSpecies,
|
|
69
|
+
notes: meta.notes,
|
|
70
|
+
source: SOURCE,
|
|
71
|
+
sourceAsOf: SOURCE_AS_OF,
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
export function setStatus(set, today = new Date()) {
|
|
75
|
+
const start = new Date(`${set.start}T00:00:00Z`);
|
|
76
|
+
const end = new Date(`${set.end}T23:59:59Z`);
|
|
77
|
+
if (today < start)
|
|
78
|
+
return 'upcoming';
|
|
79
|
+
if (today > end)
|
|
80
|
+
return 'past';
|
|
81
|
+
return 'current';
|
|
82
|
+
}
|
|
83
|
+
export function getRegulationSet(query) {
|
|
84
|
+
const q = query.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
85
|
+
return REGULATION_SETS.find((s) => {
|
|
86
|
+
const id = s.id.replace(/[^a-z0-9]/g, '');
|
|
87
|
+
const name = s.name.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
88
|
+
return id === q || name === q || s.name.toLowerCase() === query.toLowerCase();
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=regulations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regulations.js","sourceRoot":"","sources":["../src/regulations.ts"],"names":[],"mappings":"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"}
|
package/dist/result.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool results carry the payload twice: as pretty-printed JSON text (unchanged,
|
|
3
|
+
* the durable contract) and as `structuredContent` for clients that read it,
|
|
4
|
+
* which is also what the declared output schemas validate against. Error results
|
|
5
|
+
* are exempt from output validation by the SDK, so `err` stays text-only.
|
|
6
|
+
*/
|
|
7
|
+
export function ok(data) {
|
|
8
|
+
const text = typeof data === 'string' ? data : JSON.stringify(data, null, 2);
|
|
9
|
+
const result = { content: [{ type: 'text', text }] };
|
|
10
|
+
if (typeof data === 'object' && data !== null && !Array.isArray(data)) {
|
|
11
|
+
result.structuredContent = data;
|
|
12
|
+
}
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
export function err(message) {
|
|
16
|
+
return { content: [{ type: 'text', text: message }], isError: true };
|
|
17
|
+
}
|
|
18
|
+
/** Wrap a raw handler so thrown errors become isError results instead of crashing the server. */
|
|
19
|
+
export function wrap(handler) {
|
|
20
|
+
return async (args) => {
|
|
21
|
+
try {
|
|
22
|
+
return await handler(args);
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
return err(e instanceof Error ? e.message : String(e));
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Every tool on this server is the same kind of operation: a pure read over the
|
|
31
|
+
* bundled Showdown dataset and the curated regulation data. No network, no auth,
|
|
32
|
+
* no state, and the same arguments always produce the same result — so the
|
|
33
|
+
* annotations are identical across the surface and live here once.
|
|
34
|
+
*/
|
|
35
|
+
export const READ_ONLY_ANNOTATIONS = {
|
|
36
|
+
readOnlyHint: true,
|
|
37
|
+
destructiveHint: false,
|
|
38
|
+
idempotentHint: true,
|
|
39
|
+
openWorldHint: false,
|
|
40
|
+
};
|
|
41
|
+
/** Resolve a name against a Dex table; throw a helpful error listing near-matches. */
|
|
42
|
+
export function requireExists(found, kind, query, suggestions = []) {
|
|
43
|
+
if (found.exists)
|
|
44
|
+
return found;
|
|
45
|
+
const hint = suggestions.length
|
|
46
|
+
? ` Did you mean: ${suggestions.slice(0, 5).join(', ')}?`
|
|
47
|
+
: '';
|
|
48
|
+
throw new Error(`Unknown ${kind} "${query}".${hint}`);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,UAAU,EAAE,CAAC,IAAa;IAC9B,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACrE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,CAAC,iBAAiB,GAAG,IAA+B,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAe;IACjC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,IAAI,CAAI,OAA8D;IACpF,OAAO,KAAK,EAAE,IAAO,EAA2B,EAAE;QAChD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,KAAK;CACZ,CAAC;AAEX,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAC3B,KAAQ,EACR,IAAY,EACZ,KAAa,EACb,WAAW,GAAa,EAAE;IAE1B,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM;QAC7B,CAAC,CAAC,kBAAkB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACzD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC"}
|
package/dist/threats.js
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated meta threat list + standard sets for Pokémon Champions regulations.
|
|
3
|
+
*
|
|
4
|
+
* This is EDITORIAL content, not usage-derived statistics. It reflects
|
|
5
|
+
* established competitive knowledge applied to each regulation's legal roster
|
|
6
|
+
* (Mega Evolution is the marquee mechanic; Legendary/Restricted Pokémon are
|
|
7
|
+
* banned in the M-A/M-B/M-C era). Treat tiers and sets as informed starting
|
|
8
|
+
* points, not authoritative usage data.
|
|
9
|
+
*
|
|
10
|
+
* To add a new regulation:
|
|
11
|
+
* 1. `node scripts/extract-regs.mjs` (refresh legal rosters)
|
|
12
|
+
* 2. add the set metadata in `src/regulations.ts`
|
|
13
|
+
* 3. `node scripts/threat-scaffold.mjs m-d` (print the Mega roster to guide authoring)
|
|
14
|
+
* 4. add a `ThreatList` entry here keyed by the new regulation id
|
|
15
|
+
*/
|
|
16
|
+
const THREATS_M_C = [
|
|
17
|
+
{
|
|
18
|
+
species: 'Incineroar',
|
|
19
|
+
role: 'Intimidate support pivot',
|
|
20
|
+
tier: 'S',
|
|
21
|
+
item: 'Safety Goggles',
|
|
22
|
+
ability: 'Intimidate',
|
|
23
|
+
nature: 'Careful',
|
|
24
|
+
evs: { hp: 252, spd: 252, def: 4 },
|
|
25
|
+
moves: ['Fake Out', 'Flare Blitz', 'Knock Off', 'U-turn'],
|
|
26
|
+
teraType: 'Ghost',
|
|
27
|
+
notes: 'The format-defining support: Fake Out + Intimidate + slow U-turn. Ghost Tera dodges Fake Out and Fighting.',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
species: 'Garchomp',
|
|
31
|
+
role: 'Mega sweeper / wallbreaker',
|
|
32
|
+
tier: 'S',
|
|
33
|
+
item: 'Garchompite',
|
|
34
|
+
ability: 'Rough Skin',
|
|
35
|
+
megaForm: 'Mega Garchomp',
|
|
36
|
+
megaAbility: 'Sand Force',
|
|
37
|
+
nature: 'Jolly',
|
|
38
|
+
evs: { atk: 252, spe: 252, hp: 4 },
|
|
39
|
+
moves: ['Swords Dance', 'Earthquake', 'Dragon Claw', 'Rock Slide'],
|
|
40
|
+
teraType: 'Steel',
|
|
41
|
+
notes: 'Premier Mega. Sand Force in sand, Swords Dance to break walls, Rock Slide for Flying coverage.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
species: 'Salamence',
|
|
45
|
+
role: 'Mega Dragon Dance sweeper',
|
|
46
|
+
tier: 'S',
|
|
47
|
+
item: 'Salamencite',
|
|
48
|
+
ability: 'Intimidate',
|
|
49
|
+
megaForm: 'Mega Salamence',
|
|
50
|
+
megaAbility: 'Aerilate',
|
|
51
|
+
nature: 'Adamant',
|
|
52
|
+
evs: { atk: 252, spe: 252, hp: 4 },
|
|
53
|
+
moves: ['Dragon Dance', 'Dual Wingbeat', 'Earthquake', 'Roost'],
|
|
54
|
+
teraType: 'Steel',
|
|
55
|
+
notes: 'Intimidate pre-Mega, Aerilate-boosted Flying STAB after. One Dragon Dance ends games.',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
species: 'Kangaskhan',
|
|
59
|
+
role: 'Mega pressure',
|
|
60
|
+
tier: 'S',
|
|
61
|
+
item: 'Kangaskhanite',
|
|
62
|
+
ability: 'Scrappy',
|
|
63
|
+
megaForm: 'Mega Kangaskhan',
|
|
64
|
+
megaAbility: 'Parental Bond',
|
|
65
|
+
nature: 'Jolly',
|
|
66
|
+
evs: { atk: 252, spe: 252, hp: 4 },
|
|
67
|
+
moves: ['Fake Out', 'Body Slam', 'Sucker Punch', 'Crunch'],
|
|
68
|
+
teraType: 'Normal',
|
|
69
|
+
notes: 'Parental Bond double-hits everything; Fake Out + Sucker Punch chip is relentless.',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
species: 'Gholdengo',
|
|
73
|
+
role: 'Good as Gold breaker',
|
|
74
|
+
tier: 'S',
|
|
75
|
+
item: 'Life Orb',
|
|
76
|
+
ability: 'Good as Gold',
|
|
77
|
+
nature: 'Timid',
|
|
78
|
+
evs: { spa: 252, spe: 252, hp: 4 },
|
|
79
|
+
moves: ['Nasty Plot', 'Make It Rain', 'Shadow Ball', 'Recover'],
|
|
80
|
+
teraType: 'Flying',
|
|
81
|
+
notes: 'Good as Gold blocks status and pivots around; Make It Rain is a nuke. Flying Tera flips its Ground weakness.',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
species: 'Lucario',
|
|
85
|
+
role: 'Mega mixed sweeper',
|
|
86
|
+
tier: 'A',
|
|
87
|
+
item: 'Lucarionite',
|
|
88
|
+
ability: 'Justified',
|
|
89
|
+
megaForm: 'Mega Lucario',
|
|
90
|
+
megaAbility: 'Adaptability',
|
|
91
|
+
nature: 'Jolly',
|
|
92
|
+
evs: { atk: 252, spe: 252, hp: 4 },
|
|
93
|
+
moves: ['Swords Dance', 'Close Combat', 'Meteor Mash', 'Extreme Speed'],
|
|
94
|
+
teraType: 'Steel',
|
|
95
|
+
notes: 'Adaptability turns Close Combat into a delete button; Extreme Speed picks off weakened threats.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
species: 'Dragapult',
|
|
99
|
+
role: 'Fast pivot / special breaker',
|
|
100
|
+
tier: 'A',
|
|
101
|
+
item: 'Choice Specs',
|
|
102
|
+
ability: 'Infiltrator',
|
|
103
|
+
nature: 'Timid',
|
|
104
|
+
evs: { spa: 252, spe: 252, hp: 4 },
|
|
105
|
+
moves: ['Draco Meteor', 'Shadow Ball', 'U-turn', 'Thunderbolt'],
|
|
106
|
+
teraType: 'Ghost',
|
|
107
|
+
notes: 'Fastest relevant mon in the format; Infiltrator ignores screens/Substitute.',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
species: 'Charizard',
|
|
111
|
+
role: 'Mega X sweeper',
|
|
112
|
+
tier: 'A',
|
|
113
|
+
item: 'Charizardite X',
|
|
114
|
+
ability: 'Blaze',
|
|
115
|
+
megaForm: 'Mega Charizard X',
|
|
116
|
+
megaAbility: 'Tough Claws',
|
|
117
|
+
nature: 'Adamant',
|
|
118
|
+
evs: { atk: 252, spe: 252, hp: 4 },
|
|
119
|
+
moves: ['Dragon Dance', 'Flare Blitz', 'Dragon Claw', 'Earthquake'],
|
|
120
|
+
teraType: 'Fire',
|
|
121
|
+
notes: 'Tough Claws + Dragon Dance makes Flare Blitz and Dragon Claw both stab-boosted nukes.',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
species: 'Gengar',
|
|
125
|
+
role: 'Mega special breaker',
|
|
126
|
+
tier: 'A',
|
|
127
|
+
item: 'Gengarite',
|
|
128
|
+
ability: 'Cursed Body',
|
|
129
|
+
megaForm: 'Mega Gengar',
|
|
130
|
+
megaAbility: 'Shadow Tag',
|
|
131
|
+
nature: 'Timid',
|
|
132
|
+
evs: { spa: 252, spe: 252, hp: 4 },
|
|
133
|
+
moves: ['Nasty Plot', 'Shadow Ball', 'Sludge Bomb', 'Focus Blast'],
|
|
134
|
+
teraType: 'Ghost',
|
|
135
|
+
notes: 'Shadow Tag traps and removes a defensive piece; pairs with Perish Song.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
species: 'Scizor',
|
|
139
|
+
role: 'Mega priority + pivot',
|
|
140
|
+
tier: 'A',
|
|
141
|
+
item: 'Scizorite',
|
|
142
|
+
ability: 'Technician',
|
|
143
|
+
megaForm: 'Mega Scizor',
|
|
144
|
+
megaAbility: 'Technician',
|
|
145
|
+
nature: 'Adamant',
|
|
146
|
+
evs: { hp: 252, atk: 252, def: 4 },
|
|
147
|
+
moves: ['Swords Dance', 'Bullet Punch', 'U-turn', 'Close Combat'],
|
|
148
|
+
teraType: 'Steel',
|
|
149
|
+
notes: 'Technician Bullet Punch is the best priority in the format; U-turn keeps momentum.',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
species: 'Metagross',
|
|
153
|
+
role: 'Mega bulky offense',
|
|
154
|
+
tier: 'A',
|
|
155
|
+
item: 'Metagrossite',
|
|
156
|
+
ability: 'Clear Body',
|
|
157
|
+
megaForm: 'Mega Metagross',
|
|
158
|
+
megaAbility: 'Tough Claws',
|
|
159
|
+
nature: 'Jolly',
|
|
160
|
+
evs: { atk: 252, spe: 252, hp: 4 },
|
|
161
|
+
moves: ['Meteor Mash', 'Zen Headbutt', 'Earthquake', 'Bullet Punch'],
|
|
162
|
+
teraType: 'Steel',
|
|
163
|
+
notes: 'Tough Claws buffs every attacking move; Bullet Punch for cleanup.',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
species: 'Tyranitar',
|
|
167
|
+
role: 'Mega sand attacker',
|
|
168
|
+
tier: 'A',
|
|
169
|
+
item: 'Tyranitarite',
|
|
170
|
+
ability: 'Sand Stream',
|
|
171
|
+
megaForm: 'Mega Tyranitar',
|
|
172
|
+
megaAbility: 'Sand Stream',
|
|
173
|
+
nature: 'Adamant',
|
|
174
|
+
evs: { atk: 252, spe: 252, hp: 4 },
|
|
175
|
+
moves: ['Dragon Dance', 'Crunch', 'Earthquake', 'Stone Edge'],
|
|
176
|
+
teraType: 'Rock',
|
|
177
|
+
notes: 'Sets sand for the team and sweeps with Dragon Dance; also enables Sand Rush Excadrill.',
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
species: 'Gardevoir',
|
|
181
|
+
role: 'Mega special Fairy',
|
|
182
|
+
tier: 'A',
|
|
183
|
+
item: 'Gardevoirite',
|
|
184
|
+
ability: 'Trace',
|
|
185
|
+
megaForm: 'Mega Gardevoir',
|
|
186
|
+
megaAbility: 'Pixilate',
|
|
187
|
+
nature: 'Timid',
|
|
188
|
+
evs: { spa: 252, spe: 252, hp: 4 },
|
|
189
|
+
moves: ['Calm Mind', 'Moonblast', 'Psyshock', 'Mystical Fire'],
|
|
190
|
+
teraType: 'Fairy',
|
|
191
|
+
notes: 'Pixilate + Fairy STAB pressures Dark/Dragon; Calm Mind turns it into a win condition.',
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
species: 'Gyarados',
|
|
195
|
+
role: 'Mega Dragon Dance + Intimidate',
|
|
196
|
+
tier: 'A',
|
|
197
|
+
item: 'Gyaradosite',
|
|
198
|
+
ability: 'Intimidate',
|
|
199
|
+
megaForm: 'Mega Gyarados',
|
|
200
|
+
megaAbility: 'Mold Breaker',
|
|
201
|
+
nature: 'Jolly',
|
|
202
|
+
evs: { atk: 252, spe: 252, hp: 4 },
|
|
203
|
+
moves: ['Dragon Dance', 'Waterfall', 'Earthquake', 'Ice Fang'],
|
|
204
|
+
teraType: 'Flying',
|
|
205
|
+
notes: 'Intimidate support then Mold Breaker Waterfall ignores abilities like Levitate/Water Absorb.',
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
species: 'Blaziken',
|
|
209
|
+
role: 'Mega Speed Boost sweeper',
|
|
210
|
+
tier: 'A',
|
|
211
|
+
item: 'Blazikenite',
|
|
212
|
+
ability: 'Speed Boost',
|
|
213
|
+
megaForm: 'Mega Blaziken',
|
|
214
|
+
megaAbility: 'Speed Boost',
|
|
215
|
+
nature: 'Adamant',
|
|
216
|
+
evs: { atk: 252, spe: 252, hp: 4 },
|
|
217
|
+
moves: ['Protect', 'Swords Dance', 'Flare Blitz', 'Close Combat'],
|
|
218
|
+
teraType: 'Fire',
|
|
219
|
+
notes: 'Speed Boost snowballs; Protect farms a turn, Swords Dance makes it unstoppable.',
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
species: 'Mawile',
|
|
223
|
+
role: 'Mega Huge Power breaker',
|
|
224
|
+
tier: 'A',
|
|
225
|
+
item: 'Mawilite',
|
|
226
|
+
ability: 'Intimidate',
|
|
227
|
+
megaForm: 'Mega Mawile',
|
|
228
|
+
megaAbility: 'Huge Power',
|
|
229
|
+
nature: 'Adamant',
|
|
230
|
+
evs: { hp: 252, atk: 252, def: 4 },
|
|
231
|
+
moves: ['Swords Dance', 'Play Rough', 'Iron Head', 'Sucker Punch'],
|
|
232
|
+
teraType: 'Fairy',
|
|
233
|
+
notes: 'Huge Power + Swords Dance reaches absurd attack; Sucker Punch covers its low speed.',
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
species: 'Grimmsnarl',
|
|
237
|
+
role: 'Prankster screen setter',
|
|
238
|
+
tier: 'A',
|
|
239
|
+
item: 'Light Clay',
|
|
240
|
+
ability: 'Prankster',
|
|
241
|
+
nature: 'Careful',
|
|
242
|
+
evs: { hp: 252, spd: 252, def: 4 },
|
|
243
|
+
moves: ['Reflect', 'Light Screen', 'Spirit Break', 'Thunder Wave'],
|
|
244
|
+
teraType: 'Steel',
|
|
245
|
+
notes: 'Prankster dual screens enable every setup sweeper; Spirit Break drops the opponent\u2019s SpA.',
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
species: 'Swampert',
|
|
249
|
+
role: 'Mega Swift Swim (rain)',
|
|
250
|
+
tier: 'B',
|
|
251
|
+
item: 'Swampertite',
|
|
252
|
+
ability: 'Damp',
|
|
253
|
+
megaForm: 'Mega Swampert',
|
|
254
|
+
megaAbility: 'Swift Swim',
|
|
255
|
+
nature: 'Adamant',
|
|
256
|
+
evs: { atk: 252, spe: 252, hp: 4 },
|
|
257
|
+
moves: ['Waterfall', 'Earthquake', 'Ice Punch', 'Flip Turn'],
|
|
258
|
+
teraType: 'Water',
|
|
259
|
+
notes: 'Swift Swim under rain makes it the fastest rain breaker; Flip Turn pivots.',
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
species: 'Sceptile',
|
|
263
|
+
role: 'Mega special attacker',
|
|
264
|
+
tier: 'B',
|
|
265
|
+
item: 'Sceptilite',
|
|
266
|
+
ability: 'Overgrow',
|
|
267
|
+
megaForm: 'Mega Sceptile',
|
|
268
|
+
megaAbility: 'Lightning Rod',
|
|
269
|
+
nature: 'Timid',
|
|
270
|
+
evs: { spa: 252, spe: 252, hp: 4 },
|
|
271
|
+
moves: ['Leaf Storm', 'Giga Drain', 'Dragon Pulse', 'Focus Blast'],
|
|
272
|
+
teraType: 'Grass',
|
|
273
|
+
notes: 'Lightning Rod redirects Electric (great vs Rotom-Wash/Thunder) while it fires boosted Leaf Storm.',
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
species: 'Whimsicott',
|
|
277
|
+
role: 'Prankster speed control',
|
|
278
|
+
tier: 'B',
|
|
279
|
+
item: 'Focus Sash',
|
|
280
|
+
ability: 'Prankster',
|
|
281
|
+
nature: 'Timid',
|
|
282
|
+
evs: { hp: 252, spe: 252, def: 4 },
|
|
283
|
+
moves: ['Tailwind', 'Taunt', 'Encore', 'Moonblast'],
|
|
284
|
+
teraType: 'Fairy',
|
|
285
|
+
notes: 'Priority Tailwind + Taunt/Encore disruption; the format\u2019s best speed control.',
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
species: 'Pelipper',
|
|
289
|
+
role: 'Rain setter',
|
|
290
|
+
tier: 'B',
|
|
291
|
+
item: 'Damp Rock',
|
|
292
|
+
ability: 'Drizzle',
|
|
293
|
+
nature: 'Bold',
|
|
294
|
+
evs: { hp: 252, def: 252, spd: 4 },
|
|
295
|
+
moves: ['Scald', 'Hurricane', 'U-turn', 'Roost'],
|
|
296
|
+
teraType: 'Water',
|
|
297
|
+
notes: 'Drizzle powers Swift Swim (Mega Swampert) and 100%-accurate Hurricane; U-turn pivots.',
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
species: 'Rotom-Wash',
|
|
301
|
+
role: 'Bulky pivot',
|
|
302
|
+
tier: 'B',
|
|
303
|
+
item: 'Sitrus Berry',
|
|
304
|
+
ability: 'Levitate',
|
|
305
|
+
nature: 'Bold',
|
|
306
|
+
evs: { hp: 252, def: 252, spd: 4 },
|
|
307
|
+
moves: ['Volt Switch', 'Hydro Pump', 'Will-O-Wisp', 'Protect'],
|
|
308
|
+
teraType: 'Electric',
|
|
309
|
+
notes: 'Levitate + Will-O-Wisp walls physical attackers; Volt Switch keeps momentum.',
|
|
310
|
+
},
|
|
311
|
+
];
|
|
312
|
+
export const THREAT_LISTS = {
|
|
313
|
+
'm-c': {
|
|
314
|
+
regulation: 'm-c',
|
|
315
|
+
name: 'Regulation Set M-C',
|
|
316
|
+
source: 'curated',
|
|
317
|
+
sourceAsOf: '2026-09-14',
|
|
318
|
+
note: 'Curated editorial threat list, not usage-derived. Mega Evolution is the marquee mechanic; Legendary/Restricted Pokémon are banned.',
|
|
319
|
+
threats: THREATS_M_C,
|
|
320
|
+
},
|
|
321
|
+
};
|
|
322
|
+
export function getThreatList(regulation) {
|
|
323
|
+
const q = regulation.toLowerCase();
|
|
324
|
+
return Object.values(THREAT_LISTS).find((l) => l.regulation === q || l.name.toLowerCase() === q || l.regulation.replace(/[^a-z0-9]/g, '') === q.replace(/[^a-z0-9]/g, ''));
|
|
325
|
+
}
|
|
326
|
+
export function findThreat(species, regulation) {
|
|
327
|
+
const lists = regulation ? [getThreatList(regulation)].filter(Boolean) : Object.values(THREAT_LISTS);
|
|
328
|
+
const q = species.toLowerCase();
|
|
329
|
+
for (const list of lists) {
|
|
330
|
+
const t = list.threats.find((x) => x.species.toLowerCase() === q);
|
|
331
|
+
if (t)
|
|
332
|
+
return { list, threat: t };
|
|
333
|
+
}
|
|
334
|
+
return undefined;
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=threats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threats.js","sourceRoot":"","sources":["../src/threats.ts"],"names":[],"mappings":"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"}
|