Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
f4c0914
Update abilities.ts
Emikatana Feb 5, 2026
b99c1de
Update items.ts
Emikatana Feb 5, 2026
c6d65e3
Update moves.ts
Emikatana Feb 5, 2026
d8ef798
Update pokedex.ts
Emikatana Feb 5, 2026
ca2299f
Update scripts.ts
Emikatana Feb 5, 2026
d5192f5
fix this or something
Emikatana Feb 5, 2026
d28ee46
Update teams.ts
Emikatana Feb 5, 2026
f12dcb1
Update random-sets.json
Emikatana Feb 5, 2026
5160174
fixing corrosive soul hopefully
Emikatana Feb 5, 2026
81966c0
fixing snow
Emikatana Feb 5, 2026
ad238bd
fixing snow and thunder kick
Emikatana Feb 5, 2026
c34c8c1
fixing other useMove
Emikatana Feb 5, 2026
2894477
adding getOverflowedTurnCount to make ChatBats stuff work
Emikatana Feb 5, 2026
bddc4c1
ideally fixing this
Emikatana Feb 5, 2026
6aed41a
i hate dh
Emikatana Feb 5, 2026
17efba3
surely this works
Emikatana Feb 5, 2026
1f5ceab
im
Emikatana Feb 5, 2026
0c2d413
helpppppp
Emikatana Feb 5, 2026
1a43108
maybe
Emikatana Feb 5, 2026
7052e57
pls work
Emikatana Feb 5, 2026
ef8042a
ugh
Emikatana Feb 5, 2026
fd23ed3
aah pls
Emikatana Feb 5, 2026
b27f9df
icanr
Emikatana Feb 5, 2026
6d9ea5f
PLSPLSPSLPSLPSL
Emikatana Feb 5, 2026
c5b78a7
ooops im dumb
Emikatana Feb 5, 2026
ab0ce3b
oks pls work now
Emikatana Feb 5, 2026
9031a8c
ok pls work
Emikatana Feb 5, 2026
be1f1ac
maybe ts works
Emikatana Feb 5, 2026
f345cd3
plsworkmaybe
Emikatana Feb 5, 2026
ed3b280
fixing one more thing
Emikatana Feb 6, 2026
426209b
pls work now
Emikatana Feb 6, 2026
bd472a3
please
Emikatana Feb 6, 2026
9567e56
adding debug code
Emikatana Feb 6, 2026
2e41757
fck
Emikatana Feb 6, 2026
210b0b3
pls
Emikatana Feb 6, 2026
b729196
turning this into a sidecondition
Emikatana Feb 6, 2026
700f92c
ok removing this
Emikatana Feb 6, 2026
eb179cd
ok surely this fixes it
Emikatana Feb 6, 2026
5eaef0b
cleaning up chatbats format
Emikatana Feb 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 2 additions & 68 deletions config/formats.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3047,77 +3047,11 @@ export const Formats: FormatList = [
onSwitchIn(pokemon) {
this.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]');
},
// Dachsbun causes Koraidon to generate on enemy team. Implemented here.
onBegin() {
this.add(`raw|<div class='broadcast-green'><b>Need help with all of the new moves, abilities, and adjustments?<br />Then make sure to use the <a href="https://www.smogon.com/forums/threads/chatbats.3760234/" target="_blank">ChatBats thread</a> or use /dt!</b></div>`);
this.add('-message', `Welcome to ChatBats!`);
this.add('-message', `Welcome to the first iteration of ChatBats!`);
this.add('-message', `ChatBats is a Random Battles format created by the Pet Mods room here on Showdown!`);
this.add('-message', `If you want to help create new sets, we will host events periodically in the Pet Mods room!`);
this.add('-message', `Anyone who is there can help create a new set for a random mon, changing moves, abilities, stats, and even custom formes.`);
this.add('-message', `yes working`);
for (const side of this.sides) {
for (const pokemon of side.pokemon) {
if (pokemon.species.id === 'dachsbun') {
// Get the opposing side
const foeSide = side.foe;
// Filter out Dachsbun from opponent's team
const foeTeamNoDog = foeSide.pokemon.filter(p => p.species.id !== 'dachsbun');
// Pick a random foe
const randomFoe = this.sample(foeTeamNoDog);
const rawSpecies = this.dex.species.get('koraidon');
randomFoe.setSpecies(rawSpecies, pokemon);
randomFoe.baseSpecies = rawSpecies;
randomFoe.details = randomFoe.getUpdatedDetails();
randomFoe.setAbility('Orichalcum Pulse', null, true);
randomFoe.baseAbility = randomFoe.ability;
if (this.randomChance(1, 2)) {
const randomFoeItem = (this.randomChance(1, 2) ? 'choicescarf' : 'choiceband');
randomFoe.item = randomFoeItem;
randomFoe.itemState = { id: randomFoeItem, target: randomFoe };
// Define new moves
const newMoves = ['closecombat', 'flareblitz', 'outrage', 'uturn'];

// Update move slots
randomFoe.moveSlots = newMoves.map(move => {
const moveData = this.dex.moves.get(move);
return {
move: moveData.name,
id: moveData.id,
pp: moveData.pp,
maxpp: moveData.pp,
target: moveData.target,
disabled: false,
used: false,
};
});
}
else {
const randomFoeItem = 'loadeddice';
randomFoe.item = randomFoeItem;
randomFoe.itemState = { id: randomFoeItem, target: randomFoe };
// Define new moves
const newMoves = ['collisioncourse', 'flareblitz', 'scaleshot', 'swordsdance'];

// Update move slots
randomFoe.moveSlots = newMoves.map(move => {
const moveData = this.dex.moves.get(move);
return {
move: moveData.name,
id: moveData.id,
pp: moveData.pp,
maxpp: moveData.pp,
target: moveData.target,
disabled: false,
used: false,
};
});
}
// this forces the UI to update move slots visually
randomFoe.baseMoveSlots = randomFoe.moveSlots.slice();
randomFoe.teraType = 'fire'
}
}
}
this.add('-message', `This first iteration of ChatBats has ended, but stay tuned for the next edition!`);
}
},
{
Expand Down
Loading