mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-04 15:32:18 +02:00
Allow for common pregenData for a slot
This commit is contained in:
parent
3ed42b12d8
commit
56105e53d9
@ -13,17 +13,16 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
species: Species.DEWGONG,
|
species: Species.DEWGONG,
|
||||||
abilityIndex: 0, // Thick Fat
|
abilityIndex: 0, // Thick Fat
|
||||||
}],
|
}],
|
||||||
[2, [{
|
[2, [
|
||||||
species: Species.SLOWBRO,
|
{species: Species.SLOWBRO},
|
||||||
|
{species: Species.GALAR_SLOWBRO}
|
||||||
|
],
|
||||||
|
{
|
||||||
teraType: PokemonType.ICE,
|
teraType: PokemonType.ICE,
|
||||||
instantTera: true,
|
instantTera: true,
|
||||||
presetMoves: [Moves.ICE_BEAM],
|
presetMoves: [Moves.ICE_BEAM],
|
||||||
}, {
|
}
|
||||||
species: Species.GALAR_SLOWBRO,
|
],
|
||||||
teraType: PokemonType.ICE,
|
|
||||||
instantTera: true,
|
|
||||||
presetMoves: [Moves.ICE_BEAM],
|
|
||||||
}]],
|
|
||||||
[3, { species: Species.JYNX }],
|
[3, { species: Species.JYNX }],
|
||||||
[4, [{ species: Species.CLOYSTER }, { species: Species.ALOLA_SANDSLASH }]],
|
[4, [{ species: Species.CLOYSTER }, { species: Species.ALOLA_SANDSLASH }]],
|
||||||
[5, { species: Species.LAPRAS }]
|
[5, { species: Species.LAPRAS }]
|
||||||
@ -47,16 +46,14 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[2, [{
|
[2, [{
|
||||||
species: Species.ARBOK,
|
species: Species.ARBOK,
|
||||||
abilityIndex: 0,
|
abilityIndex: 0,
|
||||||
teraType: PokemonType.GHOST,
|
|
||||||
instantTera: true,
|
|
||||||
presetMoves: [Moves.TERA_BLAST],
|
|
||||||
}, {
|
}, {
|
||||||
species: Species.WEEZING,
|
species: Species.WEEZING,
|
||||||
abilityIndex: 0,
|
abilityIndex: 0,
|
||||||
|
}], {
|
||||||
teraType: PokemonType.GHOST,
|
teraType: PokemonType.GHOST,
|
||||||
instantTera: true,
|
instantTera: true,
|
||||||
presetMoves: [Moves.TERA_BLAST],
|
presetMoves: [Moves.TERA_BLAST],
|
||||||
}]],
|
}],
|
||||||
[3, { species: Species.ALOLA_MAROWAK }],
|
[3, { species: Species.ALOLA_MAROWAK }],
|
||||||
[4, { species: Species.CURSOLA }],
|
[4, { species: Species.CURSOLA }],
|
||||||
[5, {
|
[5, {
|
||||||
@ -68,15 +65,11 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[2, [{
|
[2, [{
|
||||||
species: Species.GYARADOS,
|
species: Species.GYARADOS,
|
||||||
presetMoves: [Moves.SCALE_SHOT],
|
presetMoves: [Moves.SCALE_SHOT],
|
||||||
teraType: PokemonType.DRAGON,
|
|
||||||
instantTera: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
species: Species.AERODACTYL,
|
species: Species.AERODACTYL,
|
||||||
presetMoves: [Moves.DRAGON_CLAW],
|
presetMoves: [Moves.DRAGON_CLAW],
|
||||||
teraType: PokemonType.DRAGON,
|
}], {instantTera: true}
|
||||||
instantTera: true,
|
|
||||||
}]
|
|
||||||
],
|
],
|
||||||
[3, { species: Species.ALOLA_EXEGGUTOR }],
|
[3, { species: Species.ALOLA_EXEGGUTOR }],
|
||||||
[4, { species: Species.SALAMENCE }],
|
[4, { species: Species.SALAMENCE }],
|
||||||
@ -85,19 +78,16 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
|
|
||||||
[TrainerType.WILL]: [
|
[TrainerType.WILL]: [
|
||||||
[0, { species: Species.JYNX }],
|
[0, { species: Species.JYNX }],
|
||||||
[2, [{
|
[2, [
|
||||||
species: Species.SLOWKING,
|
{species: Species.SLOWKING},
|
||||||
|
{species: Species.GALAR_SLOWKING},
|
||||||
|
], {
|
||||||
gender: Gender.FEMALE,
|
gender: Gender.FEMALE,
|
||||||
teraType: PokemonType.PSYCHIC,
|
teraType: PokemonType.PSYCHIC,
|
||||||
instantTera: true,
|
instantTera: true,
|
||||||
}, {
|
}],
|
||||||
species: Species.GALAR_SLOWKING,
|
|
||||||
gender: Gender.FEMALE,
|
|
||||||
teraType: PokemonType.PSYCHIC,
|
|
||||||
instantTera: true,
|
|
||||||
}]],
|
|
||||||
[3, { species: Species.EXEGGUTOR, gender: Gender.FEMALE }],
|
[3, { species: Species.EXEGGUTOR, gender: Gender.FEMALE }],
|
||||||
[4, [{ species: Species.WYRDEER, gender: Gender.FEMALE }, { species: Species.FARIGIRAF, gender: Gender.FEMALE }]],
|
[4, [{ species: Species.WYRDEER }, { species: Species.FARIGIRAF }], {gender: Gender.FEMALE}],
|
||||||
[5, { species: Species.XATU, gender: Gender.FEMALE }]
|
[5, { species: Species.XATU, gender: Gender.FEMALE }]
|
||||||
],
|
],
|
||||||
[TrainerType.KOGA]: [
|
[TrainerType.KOGA]: [
|
||||||
@ -107,11 +97,9 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
}],
|
}],
|
||||||
[2, [{
|
[2, [{
|
||||||
species: Species.MUK,
|
species: Species.MUK,
|
||||||
instantTera: true,
|
|
||||||
}, {
|
}, {
|
||||||
species: Species.WEEZING,
|
species: Species.WEEZING,
|
||||||
instantTera: true,
|
}], {instantTera: true}],
|
||||||
}]],
|
|
||||||
[3, { species: Species.TENTACRUEL }],
|
[3, { species: Species.TENTACRUEL }],
|
||||||
[4, [{ species: Species.SNEASLER }, { species: Species.OVERQWIL }]],
|
[4, [{ species: Species.SNEASLER }, { species: Species.OVERQWIL }]],
|
||||||
[5, { species: Species.CROBAT }]
|
[5, { species: Species.CROBAT }]
|
||||||
@ -210,16 +198,12 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[0, { species: Species.RAPIDASH }],
|
[0, { species: Species.RAPIDASH }],
|
||||||
[2, [{
|
[2, [{
|
||||||
species: Species.STEELIX,
|
species: Species.STEELIX,
|
||||||
teraType: PokemonType.FIRE,
|
|
||||||
instantTera: true,
|
|
||||||
presetMoves: [Moves.FIRE_FANG],
|
presetMoves: [Moves.FIRE_FANG],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
species: Species.LOPUNNY,
|
species: Species.LOPUNNY,
|
||||||
teraType: PokemonType.FIRE,
|
|
||||||
instantTera: true,
|
|
||||||
presetMoves: [Moves.FIRE_PUNCH],
|
presetMoves: [Moves.FIRE_PUNCH],
|
||||||
}]],
|
}], {teraType: PokemonType.FIRE, instantTera: true}],
|
||||||
[3, [{ species: Species.ARCANINE }, { species: Species.HISUI_ARCANINE }]],
|
[3, [{ species: Species.ARCANINE }, { species: Species.HISUI_ARCANINE }]],
|
||||||
[4, { species: Species.INFERNAPE }],
|
[4, { species: Species.INFERNAPE }],
|
||||||
[5, {
|
[5, {
|
||||||
@ -296,7 +280,7 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[0, { species: Species.KLEFKI }],
|
[0, { species: Species.KLEFKI }],
|
||||||
[2, {
|
[2, {
|
||||||
species: Species.CERULEDGE,
|
species: Species.CERULEDGE,
|
||||||
instantTera: true,
|
instantTera: true, // Tera Steel Ceruledge
|
||||||
presetMoves: [Moves.IRON_HEAD],
|
presetMoves: [Moves.IRON_HEAD],
|
||||||
}],
|
}],
|
||||||
[3, { species: Species.SCIZOR }],
|
[3, { species: Species.SCIZOR }],
|
||||||
@ -307,7 +291,7 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[0, { species: Species.DRAGALGE }],
|
[0, { species: Species.DRAGALGE }],
|
||||||
[2, {
|
[2, {
|
||||||
species: Species.GARCHOMP,
|
species: Species.GARCHOMP,
|
||||||
instantTera: true,
|
instantTera: true, // Tera Dragon Garchomp
|
||||||
}],
|
}],
|
||||||
[3, { species: Species.ALTARIA }],
|
[3, { species: Species.ALTARIA }],
|
||||||
[4, { species: Species.DRUDDIGON }],
|
[4, { species: Species.DRUDDIGON }],
|
||||||
@ -411,11 +395,11 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[TrainerType.ALLISTER_ELITE]: [
|
[TrainerType.ALLISTER_ELITE]: [
|
||||||
[0, { species: Species.DUSKNOIR }],
|
[0, { species: Species.DUSKNOIR }],
|
||||||
[2, {
|
[2, {
|
||||||
species: Species.RUNERIGUS,
|
species: Species.CURSOLA,
|
||||||
instantTera: true, // Tera Ghost Runerigus
|
instantTera: true, // Tera Ghost Cursola
|
||||||
}],
|
}],
|
||||||
[3, [{ species: Species.POLTEAGEIST }, { species: Species.SINISTCHA }]],
|
[3, [{ species: Species.POLTEAGEIST }, { species: Species.SINISTCHA }]],
|
||||||
[4, { species: Species.CURSOLA }],
|
[4, { species: Species.RUNERIGUS }],
|
||||||
[5, { species: Species.GENGAR }],
|
[5, { species: Species.GENGAR }],
|
||||||
],
|
],
|
||||||
[TrainerType.RAIHAN_ELITE]: [
|
[TrainerType.RAIHAN_ELITE]: [
|
||||||
@ -441,12 +425,15 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[TrainerType.POPPY]: [
|
[TrainerType.POPPY]: [
|
||||||
[0, { species: Species.COPPERAJAH }],
|
[0, { species: Species.COPPERAJAH }],
|
||||||
[2, { species: Species.MAGNEZONE }],
|
[2, { species: Species.MAGNEZONE }],
|
||||||
[3, [{
|
[3, [
|
||||||
|
{
|
||||||
species: Species.CORVIKNIGHT
|
species: Species.CORVIKNIGHT
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
species: Species.BRONZONG,
|
species: Species.BRONZONG,
|
||||||
abilityIndex: 0, // Levitate
|
abilityIndex: 0, // Levitate
|
||||||
}]],
|
}
|
||||||
|
]],
|
||||||
[4, { species: Species.STEELIX }],
|
[4, { species: Species.STEELIX }],
|
||||||
[5, { species: Species.TINKATON, instantTera: true }],
|
[5, { species: Species.TINKATON, instantTera: true }],
|
||||||
],
|
],
|
||||||
@ -509,7 +496,7 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
presetMoves: [Moves.DUAL_CHOP],
|
presetMoves: [Moves.DUAL_CHOP],
|
||||||
}],
|
}],
|
||||||
[3, { species: Species.HAXORUS }],
|
[3, { species: Species.HAXORUS }],
|
||||||
[4, [{ species: Species.KINGDRA }, { species: Species.DRACOVISH }]],
|
[4, { species: Species.KINGDRA }],
|
||||||
[5, { species: Species.ARCHALUDON }],
|
[5, { species: Species.ARCHALUDON }],
|
||||||
],
|
],
|
||||||
|
|
||||||
@ -517,23 +504,15 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[0, { species: Species.ALAKAZAM }],
|
[0, { species: Species.ALAKAZAM }],
|
||||||
[1, { species: Species.MACHAMP }],
|
[1, { species: Species.MACHAMP }],
|
||||||
[2, { species: Species.HO_OH, pokeball: PokeballType.MASTER_BALL }],
|
[2, { species: Species.HO_OH, pokeball: PokeballType.MASTER_BALL }],
|
||||||
[3, [{
|
[3, [
|
||||||
species: Species.RHYPERIOR,
|
{species: Species.RHYPERIOR}, // Tera Ground or Rock
|
||||||
instantTera: true, // Tera Ground or Rock
|
{species: Species.ELECTIVIRE}, // Tera Electric
|
||||||
}, {
|
], {instantTera: true}],
|
||||||
species: Species.ELECTIVIRE,
|
[4, [
|
||||||
instantTera: true, // Tera Electric
|
{species: Species.ARCANINE},
|
||||||
}]],
|
{species: Species.EXEGGUTOR},
|
||||||
[4, [{
|
{species: Species.GYARADOS}
|
||||||
species: Species.ARCANINE,
|
], {boss: true}],
|
||||||
boss: true,
|
|
||||||
}, {
|
|
||||||
species: Species.EXEGGUTOR,
|
|
||||||
boss: true,
|
|
||||||
}, {
|
|
||||||
species: Species.GYARADOS,
|
|
||||||
boss: true,
|
|
||||||
}]],
|
|
||||||
[5, {
|
[5, {
|
||||||
species: Species.PIDGEOT,
|
species: Species.PIDGEOT,
|
||||||
formIndex: 1, // Mega Pidgeot
|
formIndex: 1, // Mega Pidgeot
|
||||||
@ -547,16 +526,11 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
}],
|
}],
|
||||||
[1, [{ species: Species.ESPEON }, { species: Species.UMBREON }, { species: Species.SYLVEON }]],
|
[1, [{ species: Species.ESPEON }, { species: Species.UMBREON }, { species: Species.SYLVEON }]],
|
||||||
[2, { species: Species.LUGIA, pokeball: PokeballType.MASTER_BALL }],
|
[2, { species: Species.LUGIA, pokeball: PokeballType.MASTER_BALL }],
|
||||||
[3, [{
|
[3, [
|
||||||
species: Species.MEGANIUM,
|
{species: Species.MEGANIUM},
|
||||||
instantTera: true, // Tera Grass
|
{species: Species.TYPHLOSION},
|
||||||
}, {
|
{species: Species.FERALIGATR}
|
||||||
species: Species.TYPHLOSION,
|
], {instantTera: true}],
|
||||||
instantTera: true, // Tera Fire
|
|
||||||
}, {
|
|
||||||
species: Species.FERALIGATR,
|
|
||||||
instantTera: true, // Tera Water
|
|
||||||
}]],
|
|
||||||
[4, { species: Species.SNORLAX, boss: true }],
|
[4, { species: Species.SNORLAX, boss: true }],
|
||||||
[5, [{
|
[5, [{
|
||||||
species: Species.VENUSAUR,
|
species: Species.VENUSAUR,
|
||||||
@ -578,23 +552,16 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[4, [{
|
[4, [{
|
||||||
species: Species.TYRANITAR,
|
species: Species.TYRANITAR,
|
||||||
abilityIndex: 2, // Unnerve
|
abilityIndex: 2, // Unnerve
|
||||||
teraType: PokemonType.DRAGON,
|
presetMoves: [Moves.DRAGON_CLAW],
|
||||||
instantTera: true,
|
|
||||||
presetMoves: [Moves.DRAGON_CLAW]
|
|
||||||
}, {
|
}, {
|
||||||
species: Species.GARCHOMP,
|
species: Species.GARCHOMP,
|
||||||
abilityIndex: 2, // Rough Skin
|
abilityIndex: 2, // Rough Skin
|
||||||
teraType: PokemonType.DRAGON,
|
|
||||||
instantTera: true,
|
|
||||||
}, {
|
}, {
|
||||||
species: Species.KOMMO_O,
|
species: Species.KOMMO_O,
|
||||||
abilityIndex: 1, // Soundproof
|
abilityIndex: 1, // Soundproof
|
||||||
teraType: PokemonType.DRAGON,
|
}], {teraType: PokemonType.DRAGON, instantTera: true}],
|
||||||
instantTera: true,
|
|
||||||
}]],
|
|
||||||
[5, {
|
[5, {
|
||||||
species: Species.DRAGONITE,
|
species: Species.DRAGONITE,
|
||||||
abilityIndex: 2, // Multiscale
|
|
||||||
boss: true,
|
boss: true,
|
||||||
}]
|
}]
|
||||||
],
|
],
|
||||||
@ -604,19 +571,11 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[1, [{ species: Species.CRADILY }, { species: Species.ARMALDO }]],
|
[1, [{ species: Species.CRADILY }, { species: Species.ARMALDO }]],
|
||||||
[2, { species: Species.AGGRON, boss: true }],
|
[2, { species: Species.AGGRON, boss: true }],
|
||||||
[3, [{ species: Species.GOLURK }, { species: Species.RUNERIGUS }]],
|
[3, [{ species: Species.GOLURK }, { species: Species.RUNERIGUS }]],
|
||||||
[4, [{
|
[4, [
|
||||||
species: Species.REGIROCK,
|
{species: Species.REGIROCK},
|
||||||
instantTera: true,
|
{species: Species.REGICE},
|
||||||
pokeball: PokeballType.ULTRA_BALL,
|
{species: Species.REGISTEEL}
|
||||||
}, {
|
], {instantTera: true, pokeball: PokeballType.ULTRA_BALL}],
|
||||||
species: Species.REGICE,
|
|
||||||
instantTera: true,
|
|
||||||
pokeball: PokeballType.ULTRA_BALL,
|
|
||||||
}, {
|
|
||||||
species: Species.REGISTEEL,
|
|
||||||
instantTera: true,
|
|
||||||
pokeball: PokeballType.ULTRA_BALL,
|
|
||||||
}]],
|
|
||||||
[5, {
|
[5, {
|
||||||
species: Species.METAGROSS,
|
species: Species.METAGROSS,
|
||||||
formIndex: 1, // Mega Metagross
|
formIndex: 1, // Mega Metagross
|
||||||
@ -628,22 +587,15 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[2, [{
|
[2, [{
|
||||||
species: Species.LATIAS,
|
species: Species.LATIAS,
|
||||||
formIndex: 1, // Mega Latias
|
formIndex: 1, // Mega Latias
|
||||||
pokeball: PokeballType.MASTER_BALL,
|
|
||||||
}, {
|
}, {
|
||||||
species: Species.LATIOS,
|
species: Species.LATIOS,
|
||||||
formIndex: 1, // Mega Latios
|
formIndex: 1, // Mega Latios
|
||||||
pokeball: PokeballType.MASTER_BALL,
|
}], {pokeball: PokeballType.MASTER_BALL}],
|
||||||
}]],
|
|
||||||
[3, [{ species: Species.SWAMPERT }, { species: Species.GASTRODON }, { species: Species.SEISMITOAD }]],
|
[3, [{ species: Species.SWAMPERT }, { species: Species.GASTRODON }, { species: Species.SEISMITOAD }]],
|
||||||
[4, [{
|
[4, [
|
||||||
species: Species.REGIELEKI,
|
{species: Species.REGIELEKI},
|
||||||
instantTera: true,
|
{species: Species.REGIDRAGO}
|
||||||
pokeball: PokeballType.ULTRA_BALL,
|
], {instantTera: true, pokeball: PokeballType.ULTRA_BALL}],
|
||||||
}, {
|
|
||||||
species: Species.REGIDRAGO,
|
|
||||||
instantTera: true,
|
|
||||||
pokeball: PokeballType.ULTRA_BALL,
|
|
||||||
}]],
|
|
||||||
[5, {
|
[5, {
|
||||||
species: Species.MILOTIC,
|
species: Species.MILOTIC,
|
||||||
boss: true,
|
boss: true,
|
||||||
@ -683,18 +635,18 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[TrainerType.ALDER]: [
|
[TrainerType.ALDER]: [
|
||||||
[0, [{ species: Species.BOUFFALANT }, { species: Species.BRAVIARY }]],
|
[0, [{ species: Species.BOUFFALANT }, { species: Species.BRAVIARY }]],
|
||||||
[1, [
|
[1, [
|
||||||
{ species: Species.BASCULEGION, pokeball: PokeballType.ROGUE_BALL },
|
{ species: Species.BASCULEGION },
|
||||||
{ species: Species.HISUI_LILLIGANT, pokeball: PokeballType.ROGUE_BALL },
|
{ species: Species.HISUI_LILLIGANT },
|
||||||
{ species: Species.HISUI_ZOROARK, pokeball: PokeballType.ROGUE_BALL },
|
{ species: Species.HISUI_ZOROARK },
|
||||||
]],
|
], {pokeball: PokeballType.ROGUE_BALL}],
|
||||||
[2, { species: Species.ZEKROM, pokeball: PokeballType.MASTER_BALL }],
|
[2, { species: Species.ZEKROM, pokeball: PokeballType.MASTER_BALL }],
|
||||||
[3, { species: Species.KELDEO, pokeball: PokeballType.ULTRA_BALL }],
|
[3, { species: Species.KELDEO, pokeball: PokeballType.ULTRA_BALL }],
|
||||||
[4, [
|
[4, [
|
||||||
{ species: Species.CHANDELURE, teraType: PokemonType.GHOST, instantTera: true },
|
{ species: Species.CHANDELURE, teraType: PokemonType.GHOST },
|
||||||
{ species: Species.KROOKODILE, teraType: PokemonType.DARK, instantTera: true },
|
{ species: Species.KROOKODILE, teraType: PokemonType.DARK },
|
||||||
{ species: Species.CONKELDURR, teraType: PokemonType.FIGHTING, instantTera: true },
|
{ species: Species.CONKELDURR, teraType: PokemonType.FIGHTING },
|
||||||
{ species: Species.REUNICLUS, teraType: PokemonType.PSYCHIC, instantTera: true },
|
{ species: Species.REUNICLUS, teraType: PokemonType.PSYCHIC },
|
||||||
]],
|
], {instantTera: true}],
|
||||||
[5, { species: Species.VOLCARONA, boss: true }],
|
[5, { species: Species.VOLCARONA, boss: true }],
|
||||||
],
|
],
|
||||||
[TrainerType.IRIS]: [
|
[TrainerType.IRIS]: [
|
||||||
@ -702,10 +654,10 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[1, { species: Species.ARCHEOPS }],
|
[1, { species: Species.ARCHEOPS }],
|
||||||
[2, { species: Species.RESHIRAM, pokeball: PokeballType.MASTER_BALL }],
|
[2, { species: Species.RESHIRAM, pokeball: PokeballType.MASTER_BALL }],
|
||||||
[3, [
|
[3, [
|
||||||
{ species: Species.SALAMENCE, teraType: PokemonType.DRAGON, instantTera: true },
|
{ species: Species.SALAMENCE },
|
||||||
{ species: Species.HYDREIGON, teraType: PokemonType.DRAGON, instantTera: true },
|
{ species: Species.HYDREIGON },
|
||||||
{ species: Species.ARCHALUDON, teraType: PokemonType.DRAGON, instantTera: true },
|
{ species: Species.ARCHALUDON },
|
||||||
]],
|
], {teraType: PokemonType.DRAGON, instantTera: true}],
|
||||||
[4, {
|
[4, {
|
||||||
species: Species.LAPRAS,
|
species: Species.LAPRAS,
|
||||||
formIndex: 1, // G-Max Lapras
|
formIndex: 1, // G-Max Lapras
|
||||||
@ -721,13 +673,11 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
species: Species.TYRANTRUM,
|
species: Species.TYRANTRUM,
|
||||||
abilityIndex: 2, // Rock Head
|
abilityIndex: 2, // Rock Head
|
||||||
teraType: PokemonType.DRAGON,
|
teraType: PokemonType.DRAGON,
|
||||||
instantTera: true,
|
|
||||||
}, {
|
}, {
|
||||||
species: Species.AURORUS,
|
species: Species.AURORUS,
|
||||||
abilityIndex: 2, // Snow Warning
|
abilityIndex: 2, // Snow Warning
|
||||||
teraType: PokemonType.ICE,
|
teraType: PokemonType.ICE,
|
||||||
instantTera: true,
|
}], {instantTera: true}],
|
||||||
}]],
|
|
||||||
[4, {
|
[4, {
|
||||||
species: Species.GOODRA,
|
species: Species.GOODRA,
|
||||||
boss: true,
|
boss: true,
|
||||||
@ -745,19 +695,19 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
}],
|
}],
|
||||||
[1, [{ species: Species.MAGNEZONE }, { species: Species.ALOLA_NINETALES }]],
|
[1, [{ species: Species.MAGNEZONE }, { species: Species.ALOLA_NINETALES }]],
|
||||||
[2, [
|
[2, [
|
||||||
{ species: Species.TORNADUS, formIndex: 1, pokeball: PokeballType.ULTRA_BALL },
|
{ species: Species.TORNADUS },
|
||||||
{ species: Species.THUNDURUS, formIndex: 1, pokeball: PokeballType.ULTRA_BALL },
|
{ species: Species.THUNDURUS },
|
||||||
{ species: Species.LANDORUS, formIndex: 1, pokeball: PokeballType.ULTRA_BALL },
|
{ species: Species.LANDORUS },
|
||||||
]],
|
], {formIndex: 1, pokeball: PokeballType.ULTRA_BALL}], // Therian Forme Genie
|
||||||
[3, [
|
[3, [
|
||||||
{ species: Species.TAPU_KOKO, boss: true, pokeball: PokeballType.ULTRA_BALL },
|
{ species: Species.TAPU_KOKO },
|
||||||
{ species: Species.TAPU_FINI, boss: true, pokeball: PokeballType.ULTRA_BALL },
|
{ species: Species.TAPU_FINI },
|
||||||
]],
|
], {boss: true, pokeball: PokeballType.ULTRA_BALL}],
|
||||||
[4, { species: Species.SNORLAX, formIndex: 1 }], // G-Max Snorlax
|
[4, { species: Species.SNORLAX, formIndex: 1 }], // G-Max Snorlax
|
||||||
[5, [
|
[5, [
|
||||||
{ species: Species.INCINEROAR, teraType: PokemonType.DARK, instantTera: true },
|
{ species: Species.INCINEROAR, teraType: PokemonType.DARK },
|
||||||
{ species: Species.HISUI_DECIDUEYE, teraType: PokemonType.FIGHTING, instantTera: true },
|
{ species: Species.HISUI_DECIDUEYE, teraType: PokemonType.FIGHTING },
|
||||||
]],
|
], {instantTera: true}],
|
||||||
],
|
],
|
||||||
|
|
||||||
[TrainerType.HAU]: [
|
[TrainerType.HAU]: [
|
||||||
@ -765,14 +715,14 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[1, { species: Species.NOIVERN }],
|
[1, { species: Species.NOIVERN }],
|
||||||
[2, { species: Species.SOLGALEO, pokeball: PokeballType.MASTER_BALL }],
|
[2, { species: Species.SOLGALEO, pokeball: PokeballType.MASTER_BALL }],
|
||||||
[3, [
|
[3, [
|
||||||
{ species: Species.TAPU_LELE, teraType: PokemonType.PSYCHIC, instantTera: true, pokeball: PokeballType.ULTRA_BALL },
|
{ species: Species.TAPU_LELE, teraType: PokemonType.PSYCHIC },
|
||||||
{ species: Species.TAPU_BULU, teraType: PokemonType.GRASS, instantTera: true, pokeball: PokeballType.ULTRA_BALL },
|
{ species: Species.TAPU_BULU, teraType: PokemonType.GRASS },
|
||||||
]],
|
], {instantTera: true, pokeball: PokeballType.ULTRA_BALL}],
|
||||||
[4, { species: Species.ZYGARDE, formIndex: 1, pokeball: PokeballType.ROGUE_BALL }], // Zygarde 10% Forme, Aura Break
|
[4, { species: Species.ZYGARDE, formIndex: 1, pokeball: PokeballType.ROGUE_BALL }], // Zygarde 10% Forme, Aura Break
|
||||||
[5, [
|
[5, [
|
||||||
{ species: Species.DECIDUEYE, boss: true },
|
{ species: Species.DECIDUEYE },
|
||||||
{ species: Species.PRIMARINA, boss: true, gender: Gender.FEMALE },
|
{ species: Species.PRIMARINA, gender: Gender.FEMALE },
|
||||||
]],
|
], {boss: true}],
|
||||||
],
|
],
|
||||||
|
|
||||||
[TrainerType.LEON]: [
|
[TrainerType.LEON]: [
|
||||||
@ -781,10 +731,10 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[2, { species: Species.ZACIAN, pokeball: PokeballType.MASTER_BALL }],
|
[2, { species: Species.ZACIAN, pokeball: PokeballType.MASTER_BALL }],
|
||||||
[3, { species: Species.DRAGAPULT, instantTera: true }], // Tera Ghost or Dragon Dragapult
|
[3, { species: Species.DRAGAPULT, instantTera: true }], // Tera Ghost or Dragon Dragapult
|
||||||
[4, [
|
[4, [
|
||||||
{ species: Species.RILLABOOM, boss: true },
|
{ species: Species.RILLABOOM },
|
||||||
{ species: Species.CINDERACE, boss: true },
|
{ species: Species.CINDERACE },
|
||||||
{ species: Species.INTELEON, boss: true },
|
{ species: Species.INTELEON },
|
||||||
]],
|
], {boss: true}],
|
||||||
[5, { species: Species.CHARIZARD, formIndex: 3 }], // G-Max Charizard
|
[5, { species: Species.CHARIZARD, formIndex: 3 }], // G-Max Charizard
|
||||||
],
|
],
|
||||||
|
|
||||||
@ -792,14 +742,14 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
[0, { species: Species.CORVIKNIGHT, pokeball: PokeballType.ULTRA_BALL }],
|
[0, { species: Species.CORVIKNIGHT, pokeball: PokeballType.ULTRA_BALL }],
|
||||||
[1, { species: Species.KOMMO_O, pokeball: PokeballType.ULTRA_BALL }],
|
[1, { species: Species.KOMMO_O, pokeball: PokeballType.ULTRA_BALL }],
|
||||||
[2, [
|
[2, [
|
||||||
{ species: Species.GALAR_SLOWBRO, pokeball: PokeballType.ULTRA_BALL, teraType: PokemonType.POISON, instantTera: true },
|
{ species: Species.GALAR_SLOWBRO, pokeball: PokeballType.ULTRA_BALL },
|
||||||
{ species: Species.GALAR_SLOWKING, pokeball: PokeballType.ULTRA_BALL, teraType: PokemonType.POISON, instantTera: true },
|
{ species: Species.GALAR_SLOWKING, pokeball: PokeballType.ULTRA_BALL },
|
||||||
]],
|
], {teraType: PokemonType.POISON, instantTera: true}],
|
||||||
[3, { species: Species.GALAR_DARMANITAN, pokeball: PokeballType.ULTRA_BALL }],
|
[3, { species: Species.GALAR_DARMANITAN, pokeball: PokeballType.ULTRA_BALL }],
|
||||||
[4, [
|
[4, [
|
||||||
{ species: Species.VENUSAUR, pokeball: PokeballType.ULTRA_BALL, boss: true },
|
{ species: Species.VENUSAUR },
|
||||||
{ species: Species.BLASTOISE, pokeball: PokeballType.ULTRA_BALL, boss: true },
|
{ species: Species.BLASTOISE },
|
||||||
]],
|
], {pokeball: PokeballType.ULTRA_BALL, boss: true}],
|
||||||
[5, {
|
[5, {
|
||||||
species: Species.URSHIFU,
|
species: Species.URSHIFU,
|
||||||
randomForms: [2, 3], // G-Max Single Strike or G-Max Rapid Strike
|
randomForms: [2, 3], // G-Max Single Strike or G-Max Rapid Strike
|
||||||
@ -837,31 +787,17 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
{
|
{
|
||||||
species: Species.ARMAROUGE,
|
species: Species.ARMAROUGE,
|
||||||
teraType: PokemonType.PSYCHIC,
|
teraType: PokemonType.PSYCHIC,
|
||||||
instantTera: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
species: Species.CERULEDGE,
|
species: Species.CERULEDGE,
|
||||||
teraType: PokemonType.GHOST,
|
teraType: PokemonType.GHOST,
|
||||||
instantTera: true,
|
|
||||||
},
|
},
|
||||||
]],
|
], {instantTera: true}],
|
||||||
[5, [
|
[5, [
|
||||||
{
|
{species: Species.MEOWSCARADA},
|
||||||
species: Species.MEOWSCARADA,
|
{species: Species.SKELEDIRGE},
|
||||||
boss: true,
|
{species: Species.QUAQUAVAL},
|
||||||
gender: Gender.MALE,
|
], {boss: true, gender: Gender.MALE}],
|
||||||
},
|
|
||||||
{
|
|
||||||
species: Species.SKELEDIRGE,
|
|
||||||
boss: true,
|
|
||||||
gender: Gender.MALE,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
species: Species.QUAQUAVAL,
|
|
||||||
boss: true,
|
|
||||||
gender: Gender.MALE,
|
|
||||||
},
|
|
||||||
]]
|
|
||||||
],
|
],
|
||||||
|
|
||||||
[TrainerType.KIERAN]: [
|
[TrainerType.KIERAN]: [
|
||||||
@ -872,9 +808,9 @@ export const trainerPartyConfigs: TrainerPartyConfigs = {
|
|||||||
]],
|
]],
|
||||||
[2, { species: Species.TERAPAGOS, pokeball: PokeballType.MASTER_BALL }],
|
[2, { species: Species.TERAPAGOS, pokeball: PokeballType.MASTER_BALL }],
|
||||||
[3, [
|
[3, [
|
||||||
{ species: Species.URSALUNA, pokeball: PokeballType.ULTRA_BALL },
|
{ species: Species.URSALUNA },
|
||||||
{ species: Species.BLOODMOON_URSALUNA, pokeball: PokeballType.ULTRA_BALL },
|
{ species: Species.BLOODMOON_URSALUNA },
|
||||||
]],
|
], {pokeball: PokeballType.ULTRA_BALL}],
|
||||||
[4, {
|
[4, {
|
||||||
species: Species.OGERPON,
|
species: Species.OGERPON,
|
||||||
randomForms: [0, 1, 2, 3], // Choose a random Mask, which will then Tera
|
randomForms: [0, 1, 2, 3], // Choose a random Mask, which will then Tera
|
||||||
|
@ -49,14 +49,9 @@ import type {
|
|||||||
TrainerConfigs,
|
TrainerConfigs,
|
||||||
PartyMemberFuncs,
|
PartyMemberFuncs,
|
||||||
} from "./typedefs";
|
} from "./typedefs";
|
||||||
import { PokemonPregenData } from "#app/system/pokemon-data";
|
import { mergePregenData, PokemonPregenData } from "#app/system/pokemon-data";
|
||||||
import { trainerPartyConfigs } from "../balance/trainers/trainer-party-configs";
|
import { trainerPartyConfigs } from "../balance/trainers/trainer-party-configs";
|
||||||
|
|
||||||
export type TrainerPartySetSlot = [
|
|
||||||
slot: number,
|
|
||||||
config: PokemonPregenData | PokemonPregenData[]
|
|
||||||
]
|
|
||||||
|
|
||||||
/** Minimum BST for Pokemon generated onto the Elite Four's teams */
|
/** Minimum BST for Pokemon generated onto the Elite Four's teams */
|
||||||
const ELITE_FOUR_MINIMUM_BST = 460;
|
const ELITE_FOUR_MINIMUM_BST = 460;
|
||||||
|
|
||||||
@ -129,6 +124,7 @@ export class TrainerConfig {
|
|||||||
public specialtyType: PokemonType;
|
public specialtyType: PokemonType;
|
||||||
public hasVoucher = false;
|
public hasVoucher = false;
|
||||||
public trainerAI: TrainerAI;
|
public trainerAI: TrainerAI;
|
||||||
|
public partyPregen: Partial<PokemonPregenData>;
|
||||||
|
|
||||||
public encounterMessages: string[] = [];
|
public encounterMessages: string[] = [];
|
||||||
public victoryMessages: string[] = [];
|
public victoryMessages: string[] = [];
|
||||||
@ -712,22 +708,24 @@ export class TrainerConfig {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
getRandomPartyMemberFuncFromConfig(cfgs: PokemonPregenData[], postProcess?: (Pokemon) => void) {
|
getRandomPartyMemberFuncFromConfig(cfgs: PokemonPregenData[], postProcess?: (Pokemon) => void, extraPregen?: Partial<PokemonPregenData>) {
|
||||||
return (level: number, strength: PartyMemberStrength) => {
|
return (level: number, strength: PartyMemberStrength) => {
|
||||||
let cfg: PokemonPregenData = cfgs[0];
|
let cfg: PokemonPregenData = cfgs[0];
|
||||||
if (cfgs.length > 1) {
|
if (cfgs.length > 1) {
|
||||||
cfg = randSeedItem(cfgs);
|
cfg = randSeedItem(cfgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cfg.teraType) { // Defined tera type: instant tera
|
if (cfg.teraType || extraPregen?.teraType) { // Defined tera type: instant tera
|
||||||
cfg.instantTera = true;
|
cfg.instantTera = true;
|
||||||
}
|
}
|
||||||
else if (cfg.instantTera && this.hasSpecialtyType()) { // Instant tera with undefined type will be specialty type
|
else if ((cfg.instantTera || extraPregen?.instantTera) && this.hasSpecialtyType()) { // Instant tera with undefined type will be specialty type
|
||||||
cfg.teraType = this.specialtyType;
|
cfg.teraType = this.specialtyType;
|
||||||
}
|
}
|
||||||
|
const pregen = extraPregen ? mergePregenData(extraPregen, this.partyPregen) : this.partyPregen;
|
||||||
|
|
||||||
cfg.player = false;
|
cfg.player = false;
|
||||||
cfg.level = level;
|
cfg.level = level;
|
||||||
|
cfg = pregen ? mergePregenData(cfg, pregen) as PokemonPregenData : cfg;
|
||||||
return globalScene.addEnemyPokemon(
|
return globalScene.addEnemyPokemon(
|
||||||
getPokemonSpecies(cfg.species),
|
getPokemonSpecies(cfg.species),
|
||||||
level,
|
level,
|
||||||
@ -736,7 +734,7 @@ export class TrainerConfig {
|
|||||||
cfg.shinyLock,
|
cfg.shinyLock,
|
||||||
undefined,
|
undefined,
|
||||||
postProcess,
|
postProcess,
|
||||||
cfg
|
cfg,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -762,22 +760,28 @@ export class TrainerConfig {
|
|||||||
// Set species filter and specialty type, otherwise filter by base total.
|
// Set species filter and specialty type, otherwise filter by base total.
|
||||||
this.setSpeciesFilter(p => p.isOfType(specialtyType) && p.baseTotal >= ELITE_FOUR_MINIMUM_BST);
|
this.setSpeciesFilter(p => p.isOfType(specialtyType) && p.baseTotal >= ELITE_FOUR_MINIMUM_BST);
|
||||||
this.setSpecialtyType(specialtyType);
|
this.setSpecialtyType(specialtyType);
|
||||||
|
if (!this.partyPregen.preferredGender) {
|
||||||
|
this.partyPregen.preferredGender = isMale ? Gender.MALE : Gender.FEMALE;
|
||||||
|
}
|
||||||
|
|
||||||
trainerPartyConfigs[this.trainerType].forEach((slot, s) => {
|
trainerPartyConfigs[this.trainerType].forEach((slot, s) => {
|
||||||
const cfg = Array.isArray(slot[1]) ? slot[1] : [slot[1]];
|
if (!Array.isArray(slot[1])) {
|
||||||
if (s === 5) { // Last party member is always a boss with 2 segments
|
if (s == 5) {
|
||||||
cfg.forEach(c => {
|
slot[1].boss = true;
|
||||||
c.boss = true;
|
slot[1].bossSegments = 2;
|
||||||
c.bossSegments = 2;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
cfg.forEach(c => {
|
if (slot[1].teraType || slot[1].instantTera) {
|
||||||
c.preferredGender = c.preferredGender ?? isMale ? Gender.MALE: Gender.FEMALE;
|
|
||||||
});
|
|
||||||
if (cfg.some(c => c.teraType || c.instantTera)) {
|
|
||||||
this.setInstantTera(s);
|
this.setInstantTera(s);
|
||||||
}
|
}
|
||||||
this.setPartyMemberFunc(slot[0], this.getRandomPartyMemberFuncFromConfig(cfg));
|
this.setPartyMemberFunc(slot[0], this.getRandomPartyMemberFuncFromConfig([slot[1]]));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
let pregen = slot[2] ?? undefined;
|
||||||
|
if (slot[2]?.teraType || slot[2]?.instantTera) {
|
||||||
|
this.setInstantTera(s);
|
||||||
|
}
|
||||||
|
this.setPartyMemberFunc(slot[0], this.getRandomPartyMemberFuncFromConfig(slot[1], undefined, pregen));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Localize the trainer's name by converting it to lowercase and replacing spaces with underscores.
|
// Localize the trainer's name by converting it to lowercase and replacing spaces with underscores.
|
||||||
@ -815,22 +819,23 @@ export class TrainerConfig {
|
|||||||
|
|
||||||
// Set the party templates for the Champion.
|
// Set the party templates for the Champion.
|
||||||
this.setPartyTemplates(trainerPartyTemplates.CHAMPION);
|
this.setPartyTemplates(trainerPartyTemplates.CHAMPION);
|
||||||
|
if (!this.partyPregen.preferredGender) {
|
||||||
|
this.partyPregen.preferredGender = isMale ? Gender.MALE : Gender.FEMALE;
|
||||||
|
}
|
||||||
|
|
||||||
trainerPartyConfigs[this.trainerType].forEach((slot, s) => {
|
trainerPartyConfigs[this.trainerType].forEach((slot, s) => {
|
||||||
const cfg = Array.isArray(slot[1]) ? slot[1] : [slot[1]];
|
if (!Array.isArray(slot[1])) {
|
||||||
if (s === 5) { // Last party member is always a boss with 2 segments
|
if (slot[1].teraType || slot[1].instantTera) {
|
||||||
cfg.forEach(c => {
|
|
||||||
c.boss = true;
|
|
||||||
c.bossSegments = 2;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
cfg.forEach(c => {
|
|
||||||
c.preferredGender = c.preferredGender ?? isMale ? Gender.MALE: Gender.FEMALE;
|
|
||||||
});
|
|
||||||
if (cfg.some(c => c.teraType || c.instantTera)) {
|
|
||||||
this.setInstantTera(s);
|
this.setInstantTera(s);
|
||||||
}
|
}
|
||||||
this.setPartyMemberFunc(slot[0], this.getRandomPartyMemberFuncFromConfig(cfg));
|
this.setPartyMemberFunc(slot[0], this.getRandomPartyMemberFuncFromConfig([slot[1]]));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (slot[2]?.teraType || slot[2]?.instantTera) {
|
||||||
|
this.setInstantTera(s);
|
||||||
|
}
|
||||||
|
this.setPartyMemberFunc(slot[0], this.getRandomPartyMemberFuncFromConfig(slot[1], undefined, slot[2]));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Localize the trainer's name by converting it to lowercase and replacing spaces with underscores.
|
// Localize the trainer's name by converting it to lowercase and replacing spaces with underscores.
|
||||||
@ -1044,7 +1049,7 @@ export function getRandomPartyMemberFunc(
|
|||||||
trainerSlot: TrainerSlot = TrainerSlot.TRAINER,
|
trainerSlot: TrainerSlot = TrainerSlot.TRAINER,
|
||||||
ignoreEvolution = false,
|
ignoreEvolution = false,
|
||||||
postProcess?: (enemyPokemon: EnemyPokemon) => void,
|
postProcess?: (enemyPokemon: EnemyPokemon) => void,
|
||||||
pregenData?: PokemonPregenData,
|
pregenData?: Partial<PokemonPregenData>,
|
||||||
) {
|
) {
|
||||||
return (level: number, strength: PartyMemberStrength) => {
|
return (level: number, strength: PartyMemberStrength) => {
|
||||||
let species = randSeedItem(speciesPool);
|
let species = randSeedItem(speciesPool);
|
||||||
@ -1056,6 +1061,9 @@ export function getRandomPartyMemberFunc(
|
|||||||
globalScene.currentBattle.waveIndex,
|
globalScene.currentBattle.waveIndex,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if (pregenData) {
|
||||||
|
pregenData.species = species;
|
||||||
|
}
|
||||||
return globalScene.addEnemyPokemon(
|
return globalScene.addEnemyPokemon(
|
||||||
getPokemonSpecies(species),
|
getPokemonSpecies(species),
|
||||||
level,
|
level,
|
||||||
@ -1064,7 +1072,7 @@ export function getRandomPartyMemberFunc(
|
|||||||
false,
|
false,
|
||||||
undefined,
|
undefined,
|
||||||
postProcess,
|
postProcess,
|
||||||
pregenData,
|
pregenData as PokemonPregenData ?? undefined,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import type { EnemyPokemon } from "#app/field/pokemon";
|
import type { EnemyPokemon } from "#app/field/pokemon";
|
||||||
import type { PersistentModifier } from "#app/modifier/modifier";
|
import type { PersistentModifier } from "#app/modifier/modifier";
|
||||||
|
import { PokemonPregenData } from "#app/system/pokemon-data";
|
||||||
import type { PartyMemberStrength } from "#enums/party-member-strength";
|
import type { PartyMemberStrength } from "#enums/party-member-strength";
|
||||||
import type { Species } from "#enums/species";
|
import type { Species } from "#enums/species";
|
||||||
import type { TrainerConfig, TrainerPartySetSlot } from "./trainer-config";
|
import type { TrainerConfig } from "./trainer-config";
|
||||||
import type { TrainerPartyTemplate } from "./TrainerPartyTemplate";
|
import type { TrainerPartyTemplate } from "./TrainerPartyTemplate";
|
||||||
|
|
||||||
export type PartyTemplateFunc = () => TrainerPartyTemplate;
|
export type PartyTemplateFunc = () => TrainerPartyTemplate;
|
||||||
@ -24,3 +25,9 @@ export interface PartyMemberFuncs {
|
|||||||
export interface TrainerPartyConfigs {
|
export interface TrainerPartyConfigs {
|
||||||
[key: number]: TrainerPartySetSlot[];
|
[key: number]: TrainerPartySetSlot[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type TrainerPartySetSlot = [
|
||||||
|
slot: number,
|
||||||
|
config: PokemonPregenData | PokemonPregenData[],
|
||||||
|
applyToAll?: Partial<PokemonPregenData>
|
||||||
|
];
|
@ -55,6 +55,12 @@ export interface PokemonPregenData {
|
|||||||
fusionCustomPokemonData?: CustomPokemonData;
|
fusionCustomPokemonData?: CustomPokemonData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function mergePregenData(p: Partial<PokemonPregenData>, q: Partial<PokemonPregenData>): Partial<PokemonPregenData> {
|
||||||
|
let ret: Partial<PokemonPregenData> = {};
|
||||||
|
Object.assign<typeof ret, typeof q, typeof p>(ret, q, p);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
export default class PokemonData {
|
export default class PokemonData {
|
||||||
public id: number;
|
public id: number;
|
||||||
public player: boolean;
|
public player: boolean;
|
||||||
|
Loading…
Reference in New Issue
Block a user