This commit is contained in:
André Bastos Dias 2026-06-02 14:05:47 +01:00 committed by GitHub
commit a060e50e2c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 20 additions and 18 deletions

View File

@ -21,7 +21,7 @@ export class RandomGen1Teams extends RandomGen2Teams {
override randomCCTeam() {
this.enforceNoDirectCustomBanlistChanges();
const team = [];
const team: RandomTeamsTypes.RandomSet[] = [];
const randomN = this.randomNPokemon(this.maxTeamSize, this.forceMonotype);

View File

@ -612,7 +612,7 @@ export class RandomGen3Teams extends RandomGen4Teams {
name: species.baseSpecies,
species: forme,
speciesId: species.id,
gender: species.gender,
gender: species.gender || (this.random(2) ? 'F' : 'M'),
shiny: this.randomChance(1, 1024),
level,
moves: shuffledMoves,

View File

@ -727,7 +727,7 @@ export class RandomGen4Teams extends RandomGen5Teams {
name: species.baseSpecies,
species: forme,
speciesId: species.id,
gender: species.gender,
gender: species.gender || (this.random(2) ? 'F' : 'M'),
shiny: this.randomChance(1, 1024),
level,
moves: shuffledMoves,

View File

@ -790,7 +790,7 @@ export class RandomGen5Teams extends RandomGen6Teams {
name: species.baseSpecies,
species: forme,
speciesId: species.id,
gender: species.gender,
gender: species.gender || (this.random(2) ? 'F' : 'M'),
shiny: this.randomChance(1, 1024),
level,
moves: shuffledMoves,

View File

@ -653,7 +653,7 @@ export class RandomBabyTeams extends RandomTeams {
return {
name: species.baseSpecies,
species: forme,
gender: species.gender,
gender: species.baseSpecies === 'Greninja' ? 'M' : (species.gender || (this.random(2) ? 'F' : 'M')),
shiny: this.randomChance(1, 1024),
level,
moves: shuffledMoves,

View File

@ -170,7 +170,7 @@ export class RandomCAPTeams extends RandomTeams {
return {
name: species.baseSpecies,
species: forme,
gender: species.baseSpecies === 'Greninja' ? 'M' : species.gender,
gender: species.baseSpecies === 'Greninja' ? 'M' : (species.gender || (this.random(2) ? 'F' : 'M')),
shiny: this.randomChance(1, 1024),
level,
moves: shuffledMoves,

View File

@ -882,7 +882,7 @@ export class RandomFFATeams extends RandomTeams {
return {
name: species.baseSpecies,
species: forme,
gender: species.gender,
gender: species.baseSpecies === 'Greninja' ? 'M' : (species.gender || (this.random(2) ? 'F' : 'M')),
shiny: this.randomChance(1, 1024),
level,
moves: shuffledMoves,

View File

@ -517,7 +517,7 @@ declare namespace RandomTeamsTypes {
name: string;
species: string;
speciesId?: string;
gender: string | boolean;
gender: Exclude<GenderName, ''> | false;
moves: string[];
ability: string;
evs: SparseStatsTable;

View File

@ -336,9 +336,7 @@ export class Pokemon {
set.level = this.battle.clampIntRange(set.adjustLevel || set.level || 100, 1, 9999);
this.level = set.level;
const genders: { [key: string]: GenderName | null } = { __proto__: null, M: 'M', F: 'F', N: 'N' };
this.gender = genders[set.gender] || this.species.gender || this.battle.sample(['M', 'F']);
if (this.gender === 'N') this.gender = '';
this.gender = ['M', 'F'].includes(set.gender) ? set.gender : '';
this.happiness = typeof set.happiness === 'number' ? this.battle.clampIntRange(set.happiness, 0, 255) : 255;
if (this.battle.format.mod === 'gen7letsgo') this.happiness = 70;
this.pokeball = toID(this.set.pokeball) || 'pokeball' as ID;

View File

@ -1113,8 +1113,12 @@ export class TeamValidator {
}
if (!problems.length) {
if (this.gen > 5 && !ruleTable.has('obtainablemisc')) {
set.gender ||= 'N';
if (!set.gender) {
if (this.gen <= 5 || ruleTable.has('obtainablemisc')) {
set.gender = species.gender || (Math.random() <= species.genderRatio.M ? 'M' : 'F');
} else {
set.gender = 'N';
}
}
if (adjustLevel) set.level = adjustLevel;
return null;

View File

@ -11,7 +11,7 @@ describe('Quick Claw', () => {
});
it(`[Gen 2] shares its activation roll with every holder on any given turn`, () => {
battle = common.gen(2).createBattle({ seed: [1, 2, 3, 27] }, [[
battle = common.gen(2).createBattle({ seed: [56315, 2707, 289, 7274] }, [[
{ species: 'snorlax', item: 'quickclaw', moves: ['sleeptalk'] },
], [
{ species: 'mewtwo', item: 'quickclaw', moves: ['sleeptalk'] },
@ -28,7 +28,7 @@ describe('Quick Claw', () => {
});
it(`[Gen 3] causes Speed ties with every holder when activated`, () => {
battle = common.gen(3).createBattle({ seed: [163, 106, 112, 542] }, [[
battle = common.gen(3).createBattle({ seed: [54340, 18392, 54347, 33433] }, [[
{ species: 'snorlax', item: 'quickclaw', moves: ['spore'] },
], [
{ species: 'deoxys', item: 'quickclaw', moves: ['seismictoss'] },

View File

@ -28,7 +28,7 @@ describe('Assurance', () => {
it(`should double the power against damaged Pokemon, not damaged slots`, () => {
battle = common.createBattle({ gameType: 'doubles' }, [[
{ species: 'bulbasaur', level: 1, moves: ['sleeptalk'] },
{ species: 'landorus', moves: ['sleeptalk'] },
{ species: 'landorus', ability: 'shellarmor', moves: ['sleeptalk'] },
], [
{ species: 'alakazam', moves: ['psychic'] },
{ species: 'pawniard', moves: ['assurance'] },

View File

@ -12,7 +12,7 @@ describe('Burn Up', () => {
it('should not thaw the user if it is not a Fire type', () => {
battle = common.createBattle({
seed: [0, 0, 0, 0],
seed: [0, 0, 38, 40643],
customRules: 'guaranteedsecondarymod',
}, [[
{ species: 'Moltres', moves: ['burnup'] },

View File

@ -106,7 +106,7 @@ describe(`Pursuit`, () => {
{ species: "Clefable", moves: ['calmmind'] },
{ species: "Furret", moves: ['calmmind'] },
], [
{ species: "Clefable", moves: ['calmmind'] },
{ species: "Clefable", ability: 'shellarmor', moves: ['calmmind'] },
{ species: "Alakazam", moves: ['calmmind'] },
{ species: "Roserade", moves: ['calmmind'] },
]]);