Skip to content

Commit 9acfff8

Browse files
committed
1 parent f9961fa commit 9acfff8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1216
-282
lines changed

client/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pkmn/client",
3-
"version": "0.6.29",
3+
"version": "0.6.30",
44
"description": "Client battle engine for Pokémon Showdown",
55
"repository": "github:pkmn/ps",
66
"license": "MIT",
@@ -15,11 +15,11 @@
1515
"build"
1616
],
1717
"dependencies": {
18-
"@pkmn/data": "^0.9.23",
19-
"@pkmn/protocol": "^0.6.29"
18+
"@pkmn/data": "^0.9.24",
19+
"@pkmn/protocol": "^0.6.30"
2020
},
2121
"devDependencies": {
22-
"@pkmn/dex": "^0.9.23"
22+
"@pkmn/dex": "^0.9.24"
2323
},
2424
"scripts": {
2525
"lint": "eslint --cache src",

client/src/handler.ts

+15-1
Original file line numberDiff line numberDiff line change
@@ -489,11 +489,25 @@ export class Handler implements Protocol.Handler {
489489
}
490490

491491
'|-item|'(args: Args['|-item|'], kwArgs: KWArgs['|-item|']): void {
492-
const poke = this.battle.getPokemon(args[1])!;
492+
let poke = this.battle.getPokemon(args[1])!;
493493
const item = this.battle.get('items', args[2]);
494494
const fromEffect = this.battle.get('conditions', kwArgs.from);
495495
const ofPoke = this.battle.getPokemon(kwArgs.of);
496496

497+
if (!poke) {
498+
if (fromEffect.id === 'frisk') {
499+
const possibleTargets = ofPoke!.side.foe.active.filter(p => p !== null);
500+
if (possibleTargets.length === 1) {
501+
poke = possibleTargets[0]!;
502+
} else {
503+
ofPoke!.activateAbility('Frisk');
504+
return;
505+
}
506+
} else {
507+
throw new Error('No Pokemon in -item message');
508+
}
509+
}
510+
497511
poke.item = item.id;
498512
poke.itemEffect = '';
499513

data/index.test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,13 @@ for (const [pkg, Dex] of Object.entries(DATA)) {
137137
});
138138

139139
it('cached', () => {
140-
const a = Gen(6).items.get('Choice Band');
141-
const b = Gen(6).items.get('Choice Band');
142-
const c = Gen(7).items.get('Choice Band');
140+
const a = Gen(5).items.get('Dark Gem');
141+
const b = Gen(5).items.get('Dark Gem');
142+
const c = Gen(6).items.get('Dark Gem');
143143

144144
expect(b).toBe(a);
145145
expect(c).not.toBe(a);
146-
expect(b!.name).toBe('Choice Band');
146+
expect(b!.name).toBe('Dark Gem');
147147
});
148148

149149
it('toString', () => {

data/package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pkmn/data",
3-
"version": "0.9.23",
3+
"version": "0.9.24",
44
"description": "A forked implementation of the Pokémon Showdown client's data layer",
55
"repository": "github:pkmn/ps",
66
"license": "MIT",
@@ -16,12 +16,12 @@
1616
"build"
1717
],
1818
"dependencies": {
19-
"@pkmn/dex-types": "^0.9.23"
19+
"@pkmn/dex-types": "^0.9.24"
2020
},
2121
"devDependencies": {
22-
"@pkmn/dex": "^0.9.23",
23-
"@pkmn/mods": "^0.9.23",
24-
"@pkmn/sim": "^0.9.23",
22+
"@pkmn/dex": "^0.9.24",
23+
"@pkmn/mods": "^0.9.24",
24+
"@pkmn/sim": "^0.9.24",
2525
"@smogon/calc": "^0.10.0"
2626
},
2727
"scripts": {

dex/data/abilities.json

+1
Original file line numberDiff line numberDiff line change
@@ -1909,6 +1909,7 @@
19091909
},
19101910
"guarddog": {
19111911
"onDragOutPriority": 1,
1912+
"onTryBoostPriority": 2,
19121913
"flags": {"breakable": 1},
19131914
"name": "Guard Dog",
19141915
"num": 275,

dex/data/aliases.json

+215-2
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@
8989
"gen6ag": "[Gen 6] Anything Goes",
9090
"crossevo": "[Gen 9] Cross Evolution",
9191
"mayhem": "[Gen 9] Random Battle Mayhem",
92-
"omotm": "[Gen 9] Passive Aggressive",
93-
"lcotm": "[Gen 9] Almost Any Ability UU",
92+
"omotm": "[Gen 9] Twisted Dimension",
93+
"lcotm": "[Gen 9] Mix and Mega Doubles",
9494
"fabio": "Ampharos-Mega",
9595
"maero": "Aerodactyl-Mega",
9696
"megabunny": "Lopunny-Mega",
@@ -2081,6 +2081,219 @@
20812081
"zugadoon": "Blacephalon",
20822082
"merutan": "Meltan",
20832083
"merumetaru": "Melmetal",
2084+
"sarunori": "Grookey",
2085+
"bachinkii": "Thwackey",
2086+
"gorirandaa": "Rillaboom",
2087+
"hibanii": "Scorbunny",
2088+
"rabifutto": "Raboot",
2089+
"eesubaan": "Cinderace",
2090+
"messon": "Sobble",
2091+
"jimereon": "Drizzile",
2092+
"intereon": "Inteleon",
2093+
"hoshigarisu": "Skwovet",
2094+
"yokubarisu": "Greedent",
2095+
"kokogara": "Rookidee",
2096+
"aogarasu": "Corvisquire",
2097+
"aamaagaa": "Corviknight",
2098+
"satchimushi": "Blipbug",
2099+
"redoomushi": "Dottler",
2100+
"iorubu": "Orbeetle",
2101+
"kusune": "Nickit",
2102+
"fokusurai": "Thievul",
2103+
"himenka": "Gossifleur",
2104+
"watashiraga": "Eldegoss",
2105+
"uuruu": "Wooloo",
2106+
"baiuuruu": "Dubwool",
2107+
"kamukame": "Chewtle",
2108+
"kajirigame": "Drednaw",
2109+
"wanpachi": "Yamper",
2110+
"parusuwan": "Boltund",
2111+
"tandon": "Rolycoly",
2112+
"toroggon": "Carkol",
2113+
"sekitanzan": "Coalossal",
2114+
"kajitchu": "Applin",
2115+
"appuryuu": "Flapple",
2116+
"taruppuru": "Appletun",
2117+
"sunahebi": "Silicobra",
2118+
"sadaija": "Sandaconda",
2119+
"utsuu": "Cramorant",
2120+
"sashikamasu": "Arrokuda",
2121+
"kamasujoo": "Barraskewda",
2122+
"erezun": "Toxel",
2123+
"sutorindaa": "Toxtricity",
2124+
"yakude": "Sizzlipede",
2125+
"maruyakude": "Centiskorch",
2126+
"tatakko": "Clobbopus",
2127+
"otosupasu": "Grapploct",
2128+
"yabacha": "Sinistea",
2129+
"pottodesu": "Polteageist",
2130+
"miburimu": "Hatenna",
2131+
"teburimu": "Hattrem",
2132+
"burimuon": "Hatterene",
2133+
"berobaa": "Impidimp",
2134+
"gimoo": "Morgrem",
2135+
"ooronge": "Grimmsnarl",
2136+
"tachifusaguma": "Obstagoon",
2137+
"nyaikingu": "Perrserker",
2138+
"sanigoon": "Cursola",
2139+
"negiganaito": "Sirfetch'd",
2140+
"barikooru": "Mr. Rime",
2141+
"desubaan": "Runerigus",
2142+
"mahomiru": "Milcery",
2143+
"mahoippu": "Alcremie",
2144+
"taireetsu": "Falinks",
2145+
"bachinuni": "Pincurchin",
2146+
"yukihami": "Snom",
2147+
"mosunou": "Frosmoth",
2148+
"ishihenjin": "Stonjourner",
2149+
"koorippo": "Eiscue",
2150+
"iessan": "Indeedee",
2151+
"morupeko": "Morpeko",
2152+
"zoudou": "Cufant",
2153+
"daioudou": "Copperajah",
2154+
"patchiragon": "Dracozolt",
2155+
"patchirudon": "Arctozolt",
2156+
"uonoragon": "Dracovish",
2157+
"uochirudon": "Arctovish",
2158+
"jurarudon": "Duraludon",
2159+
"dorameshiya": "Dreepy",
2160+
"doronchi": "Drakloak",
2161+
"doraparuto": "Dragapult",
2162+
"zashian": "Zacian",
2163+
"mugendaina": "Eternatus",
2164+
"dakuma": "Kubfu",
2165+
"uuraosu": "Urshifu",
2166+
"zaruudo": "Zarude",
2167+
"rejiereki": "Regieleki",
2168+
"rejidorago": "Regidrago",
2169+
"burizaposu": "Glastrier",
2170+
"reisuposu": "Spectrier",
2171+
"badorekkusu": "Calyrex",
2172+
"ayashishi": "Wyrdeer",
2173+
"basagiri": "Kleavor",
2174+
"gachiguma": "Ursaluna",
2175+
"idaitou": "Basculegion",
2176+
"oonyuura": "Sneasler",
2177+
"hariiman": "Overqwil",
2178+
"rabutorosu": "Enamorus",
2179+
"nyaoha": "Sprigatito",
2180+
"nyaroote": "Floragato",
2181+
"masukaanya": "Meowscarada",
2182+
"hogeeta": "Fuecoco",
2183+
"achigeeta": "Crocalor",
2184+
"raudoboon": "Skeledirge",
2185+
"kuwassu": "Quaxly",
2186+
"uerukamo": "Quaxwell",
2187+
"ueenibaru": "Quaquaval",
2188+
"guruton": "Lechonk",
2189+
"pafuyuuton": "Oinkologne",
2190+
"tamanchura": "Tarountula",
2191+
"wanaidaa": "Spidops",
2192+
"mamebatta": "Nymble",
2193+
"ekusureggu": "Lokix",
2194+
"pamo": "Pawmi",
2195+
"pamotto": "Pawmo",
2196+
"paamotto": "Pawmot",
2197+
"wakkanezumi": "Tandemaus",
2198+
"ikkanezumi": "Maushold",
2199+
"papimotchi": "Fidough",
2200+
"bauttsueru": "Dachsbun",
2201+
"miniibu": "Smoliv",
2202+
"oriinyo": "Dolliv",
2203+
"oriiva": "Arboliva",
2204+
"ikirinko": "Squawkabilly",
2205+
"kojio": "Nacli",
2206+
"jiozumu": "Naclstack",
2207+
"kyojioon": "Garganacl",
2208+
"karubou": "Charcadet",
2209+
"gurenaruma": "Armarouge",
2210+
"soubureizu": "Ceruledge",
2211+
"zupika": "Tadbulb",
2212+
"harabarii": "Bellibolt",
2213+
"kaiden": "Wattrel",
2214+
"taikaiden": "Kilowattrel",
2215+
"orachifu": "Maschiff",
2216+
"mafiteifu": "Mabosstiff",
2217+
"shirushuruu": "Shroodle",
2218+
"taginguru": "Grafaiai",
2219+
"anokusa": "Bramblin",
2220+
"anohoragusa": "Brambleghast",
2221+
"nonokurage": "Toedscool",
2222+
"rikukurage": "Toedscruel",
2223+
"gakegani": "Klawf",
2224+
"kapusaiji": "Capsakid",
2225+
"sukoviran": "Scovillain",
2226+
"shigaroko": "Rellor",
2227+
"berakasu": "Rabsca",
2228+
"hirahina": "Flittle",
2229+
"kuesupatora": "Espathra",
2230+
"kanuchan": "Tinkatink",
2231+
"nakanuchan": "Tinkatuff",
2232+
"dekanuchan": "Tinkaton",
2233+
"umidiguda": "Wiglett",
2234+
"umitorio": "Wugtrio",
2235+
"otoshidori": "Bombirdier",
2236+
"namiiruka": "Finizen",
2237+
"irukaman": "Palafin",
2238+
"buroron": "Varoom",
2239+
"burororoomu": "Revavroom",
2240+
"mototokage": "Cyclizar",
2241+
"mimizuzu": "Orthworm",
2242+
"kiraame": "Glimmet",
2243+
"kirafuroru": "Glimmora",
2244+
"bochi": "Greavard",
2245+
"hakadoggu": "Houndstone",
2246+
"karamingo": "Flamigo",
2247+
"arukujira": "Cetoddle",
2248+
"harukujira": "Cetitan",
2249+
"migaruusa": "Veluza",
2250+
"heirassha": "Dondozo",
2251+
"sharitatsu": "Tatsugiri",
2252+
"konoyozaru": "Annihilape",
2253+
"dooo": "Clodsire",
2254+
"rikikirin": "Farigiraf",
2255+
"nokokotchi": "Dudunsparce",
2256+
"dodogezan": "Kingambit",
2257+
"idainakiba": "Great Tusk",
2258+
"sakebushippo": "Scream Tail",
2259+
"araburutake": "Brute Bonnet",
2260+
"habatakukami": "Flutter Mane",
2261+
"chiwohauhane": "Slither Wing",
2262+
"sunanokegawa": "Sandy Shocks",
2263+
"tetsunowadachi": "Iron Treads",
2264+
"tetsunotsutsumi": "Iron Bundle",
2265+
"tetsunokaina": "Iron Hands",
2266+
"tetsunokoube": "Iron Jugulis",
2267+
"tetsunodokuga": "Iron Moth",
2268+
"tetsunoibara": "Iron Thorns",
2269+
"sebie": "Frigibax",
2270+
"segooru": "Arctibax",
2271+
"segureibu": "Baxcalibur",
2272+
"korekuree": "Gimmighoul",
2273+
"saafugoo": "Gholdengo",
2274+
"chionjien": "Wo-Chien",
2275+
"paojian": "Chien-Pao",
2276+
"dinruu": "Ting-Lu",
2277+
"iiyui": "Chi-Yu",
2278+
"todorokutsuki": "Roaring Moon",
2279+
"tetsunobujin": "Iron Valiant",
2280+
"uneruminamo": "Walking Wake",
2281+
"tetsunoisaha": "Iron Leaves",
2282+
"kamitchu": "Dipplin",
2283+
"chadesu": "Poltchageist",
2284+
"yabasocha": "Sinistcha",
2285+
"iineinu": "Okidogi",
2286+
"mashimashira": "Munkidori",
2287+
"kichikigisu": "Fezandipiti",
2288+
"oogapon": "Ogerpon",
2289+
"burijurasu": "Archaludon",
2290+
"kamitsuorochi": "Hydrapple",
2291+
"ugatsuhomura": "Gouging Fire",
2292+
"takeruraiko": "Raging Bolt",
2293+
"tetsunoiwao": "Iron Boulder",
2294+
"tetsunokashira": "Iron Crown",
2295+
"terapagosu": "Terapagos",
2296+
"momowarou": "Pecharunt",
20842297
"arg": "Arghonaut",
20852298
"astro": "Astrolotl",
20862299
"auru": "Aurumoth",

dex/data/conditions.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
"onBeforeMovePriority": 11,
139139
"onLockMove": "recharge"
140140
},
141-
"futuremove": {"name": "futuremove", "duration": 3, "onResidualOrder": 3},
141+
"futuremove": {"name": "futuremove", "onResidualOrder": 3},
142142
"healreplacement": {"name": "healreplacement", "onSwitchInPriority": 1},
143143
"stall": {"name": "stall", "duration": 2, "counterMax": 729},
144144
"gem": {

0 commit comments

Comments
 (0)