diff --git a/play.pokemonshowdown.com/js/client-mainmenu.js b/play.pokemonshowdown.com/js/client-mainmenu.js index b227bc91e1..90b0cec373 100644 --- a/play.pokemonshowdown.com/js/client-mainmenu.js +++ b/play.pokemonshowdown.com/js/client-mainmenu.js @@ -132,7 +132,7 @@ options.noMinimize = options.noMinimize || false; this.$pmBox[options.append ? 'append' : 'prepend']('
'); }, diff --git a/play.pokemonshowdown.com/js/storage.js b/play.pokemonshowdown.com/js/storage.js index f8683219bb..7ed72ca8b0 100644 --- a/play.pokemonshowdown.com/js/storage.js +++ b/play.pokemonshowdown.com/js/storage.js @@ -99,7 +99,7 @@ Storage.bg = { break; case 'waterfall': hues = ["119.31034482758622,37.66233766233767%", "184.36363636363635,23.012552301255226%", "108.92307692307692,37.14285714285714%", "70.34482758620689,20.567375886524818%", "98.39999999999998,36.76470588235296%", "140,38.18181818181818%"]; - attrib = '"Irie" background by Samuel Teo'; + attrib = '"Irie" background by Samuel Teo'; break; case 'shaymin': hues = ["39.000000000000064,21.7391304347826%", "170.00000000000003,2.380952380952378%", "157.5,11.88118811881188%", "174.78260869565216,12.041884816753928%", "185.00000000000003,12.76595744680851%", "20,5.660377358490567%"]; @@ -107,7 +107,7 @@ Storage.bg = { break; case 'charizards': hues = ["37.159090909090914,74.57627118644066%", "10.874999999999998,70.79646017699115%", "179.51612903225808,52.10084033613446%", "20.833333333333336,36.73469387755102%", "192.3076923076923,80.41237113402063%", "210,29.629629629629633%"]; - attrib = '"Charizards" background by Jessica Valencia'; + attrib = '"Charizards" background by Jessica Valencia'; break; case 'psday': hues = ["24.705882352941174,25.37313432835821%", "260.4651162790697,59.44700460829492%", "165.3191489361702,46.07843137254901%", "16.363636363636367,42.63565891472869%", "259.04761904761904,34.05405405405405%", "24.705882352941174,25.37313432835821%"]; diff --git a/play.pokemonshowdown.com/src/battle-dex-data.ts b/play.pokemonshowdown.com/src/battle-dex-data.ts index 9e1042c826..e8a3925120 100644 --- a/play.pokemonshowdown.com/src/battle-dex-data.ts +++ b/play.pokemonshowdown.com/src/battle-dex-data.ts @@ -621,6 +621,7 @@ const BattlePokemonIconIndexes: {[id: string]: number} = { scattervein: 1512 + 72, cresceidon: 1512 + 73, chuggalong: 1512 + 74, + shox: 1512 + 75, }; const BattlePokemonIconIndexesLeft: {[id: string]: number} = { diff --git a/play.pokemonshowdown.com/src/battle-dex.ts b/play.pokemonshowdown.com/src/battle-dex.ts index 0d7f2351d0..5d843729de 100644 --- a/play.pokemonshowdown.com/src/battle-dex.ts +++ b/play.pokemonshowdown.com/src/battle-dex.ts @@ -760,7 +760,7 @@ const Dex = new class implements ModdedDex { let top = Math.floor(num / 12) * 30; let left = (num % 12) * 40; let fainted = ((pokemon as Pokemon | ServerPokemon)?.fainted ? `;opacity:.3;filter:grayscale(100%) brightness(.5)` : ``); - return `background:transparent url(${Dex.resourcePrefix}sprites/pokemonicons-sheet.png?v16) no-repeat scroll -${left}px -${top}px${fainted}`; + return `background:transparent url(${Dex.resourcePrefix}sprites/pokemonicons-sheet.png?v17) no-repeat scroll -${left}px -${top}px${fainted}`; } getTeambuilderSpriteData(pokemon: any, gen: number = 0): TeambuilderSpriteData { diff --git a/play.pokemonshowdown.com/src/battle.ts b/play.pokemonshowdown.com/src/battle.ts index b82e5c3aba..aed949f89a 100644 --- a/play.pokemonshowdown.com/src/battle.ts +++ b/play.pokemonshowdown.com/src/battle.ts @@ -2240,6 +2240,20 @@ export class Battle { let item = Dex.items.get(args[2]); let effect = Dex.getEffect(kwArgs.from); let ofpoke = this.getPokemon(kwArgs.of); + if (!poke) { + if (effect.id === 'frisk') { + const possibleTargets = ofpoke!.side.foe.active.filter(p => p !== null); + if (possibleTargets.length === 1) { + poke = possibleTargets[0]!; + } else { + this.activateAbility(ofpoke!, "Frisk"); + this.log(args, kwArgs); + break; + } + } else { + throw new Error('No Pokemon in -item message'); + } + } poke.item = item.name; poke.itemEffect = ''; poke.removeVolatile('airballoon' as ID); @@ -2529,16 +2543,20 @@ export class Battle { case '-terastallize': { let poke = this.getPokemon(args[1])!; let type = Dex.types.get(args[2]).name; + let lockForme = false; poke.removeVolatile('typeadd' as ID); poke.teraType = type; poke.terastallized = type; poke.details += `, tera:${type}`; poke.searchid += `, tera:${type}`; if (poke.speciesForme.startsWith("Morpeko")) { + lockForme = true; + poke.speciesForme = poke.getSpeciesForme(); poke.details = poke.details.replace("Morpeko", poke.speciesForme); poke.searchid = `${poke.ident}|${poke.details}`; + delete poke.volatiles['formechange']; } - this.scene.animTransform(poke, true); + this.scene.animTransform(poke, true, lockForme); this.scene.resetStatbar(poke); this.log(args, kwArgs); break; diff --git a/play.pokemonshowdown.com/src/client-core.ts b/play.pokemonshowdown.com/src/client-core.ts index bee487d2cf..ebb9cff35d 100644 --- a/play.pokemonshowdown.com/src/client-core.ts +++ b/play.pokemonshowdown.com/src/client-core.ts @@ -273,7 +273,7 @@ const PSBackground = new class extends PSStreamModel { "140,38.18181818181818%", ]; attrib = { - url: 'https://yilx.deviantart.com/art/Irie-372292729', + url: 'https://x.com/Yilxaevum', title: 'Irie', artist: 'Samuel Teo', }; @@ -303,7 +303,7 @@ const PSBackground = new class extends PSStreamModel { "210,29.629629629629633%", ]; attrib = { - url: 'https://seiryuuden.deviantart.com/art/The-Ultimate-Mega-Showdown-Charizards-414587079', + url: 'https://lit.link/en/seiryuuden', title: 'Charizards', artist: 'Jessica Valencia', }; diff --git a/pokemonshowdown.com/credits.php b/pokemonshowdown.com/credits.php index 3b882d3719..0ced58663e 100644 --- a/pokemonshowdown.com/credits.php +++ b/pokemonshowdown.com/credits.php @@ -129,10 +129,10 @@Daniel Kong – Art (Shaymin background)
Jessica Valencia [seiryuuden] – Art (Charizards background)
Jessica Valencia [seiryuuden] – Art (Charizards background)
Kyle Dove – Art (battle backdrops)
Vivian Zou [Vtas] – Art (Horizon background)
Samuel Teo [Yilx] – Art (Waterfall background)
Samuel Teo [Yilx] – Art (Waterfall background)
[Quanyails] – Art (Ocean background)
X/Y and Sun/Moon Sprite Projects led by Ian Clail [Layell]– Sprites
Sun/Moon and Sword/Shield Sprite Projects led by [leparagon] – Sprites
'.$summary.'
'; $newsCache[$topic_id]['summary_html'] = $summary; @@ -88,6 +90,8 @@ function saveNews() { $details = str_replace("[/url]", '', $details); $details = str_replace("[b]", '', $details); $details = str_replace("[/b]", '', $details); + $details = preg_replace('/\[psicon (pokemon|item|type|category)="([^\]]+)"\]/', ''.$details.'
'; $newsCache[$topic_id]['details_html'] = $details; } else {