From f176fb4498e04a9a7d3f820646399bb77bb0d9e9 Mon Sep 17 00:00:00 2001 From: AJ Fontaine Date: Sat, 3 Aug 2024 16:10:58 -0400 Subject: [PATCH] Added Koga as Gym Leader --- src/battle.ts | 2 +- src/data/biomes.ts | 12 ++++++++---- src/data/challenge.ts | 2 +- src/data/dialogue.ts | 19 +++++++++++++++---- src/data/trainer-config.ts | 9 +++++++-- src/enums/trainer-type.ts | 3 ++- src/locales/de/dialogue.ts | 11 +++++++++++ src/locales/en/dialogue.ts | 11 +++++++++++ src/locales/es/dialogue.ts | 11 +++++++++++ src/locales/fr/dialogue.ts | 22 ++++++++++++++++++++++ src/locales/it/dialogue.ts | 11 +++++++++++ src/locales/pt_BR/dialogue.ts | 22 ++++++++++++++++++++++ src/locales/zh_CN/dialogue.ts | 11 +++++++++++ src/locales/zh_TW/dialogue.ts | 11 +++++++++++ 14 files changed, 144 insertions(+), 13 deletions(-) diff --git a/src/battle.ts b/src/battle.ts index cbe6dee1a4a..29b77db8ac7 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -501,7 +501,7 @@ export const classicFixedBattles: FixedBattleConfigs = { [182]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.LORELEI, TrainerType.WILL, TrainerType.SIDNEY, TrainerType.AARON, TrainerType.SHAUNTAL, TrainerType.MALVA, [ TrainerType.HALA, TrainerType.MOLAYNE ], TrainerType.MARNIE_ELITE, TrainerType.RIKA, TrainerType.CRISPIN ])), [184]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(182) - .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.BRUNO, TrainerType.KOGA, TrainerType.PHOEBE, TrainerType.BERTHA, TrainerType.MARSHAL, TrainerType.SIEBOLD, TrainerType.OLIVIA, TrainerType.NESSA_ELITE, TrainerType.POPPY, TrainerType.AMARYS ])), + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.BRUNO, TrainerType.KOGA_ELITE, TrainerType.PHOEBE, TrainerType.BERTHA, TrainerType.MARSHAL, TrainerType.SIEBOLD, TrainerType.OLIVIA, TrainerType.NESSA_ELITE, TrainerType.POPPY, TrainerType.AMARYS ])), [186]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(182) .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.AGATHA, TrainerType.BRUNO, TrainerType.GLACIA, TrainerType.FLINT, TrainerType.GRIMSLEY, TrainerType.WIKSTROM, TrainerType.ACEROLA, [ TrainerType.BEA_ELITE, TrainerType.ALLISTER_ELITE ], TrainerType.LARRY_ELITE, TrainerType.LACEY ])), [188]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(182) diff --git a/src/data/biomes.ts b/src/data/biomes.ts index 479e0994cb6..6bcc3a41ce4 100644 --- a/src/data/biomes.ts +++ b/src/data/biomes.ts @@ -1705,7 +1705,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [ TrainerType.BLACK_BELT ], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.JANINE, TrainerType.ROXIE ], + [BiomePoolTier.BOSS]: [ TrainerType.JANINE, TrainerType.KOGA ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1958,7 +1958,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.PIERS ], + [BiomePoolTier.BOSS]: [ TrainerType.PIERS, TrainerType.ROXIE ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -7331,6 +7331,10 @@ export function initBiomes() { [ Biome.SWAMP, BiomePoolTier.BOSS ] ] ], + [ TrainerType.KOGA, [ + [ Biome.SWAMP, BiomePoolTier.BOSS ] + ] + ], [ TrainerType.SABRINA, [ [ Biome.RUINS, BiomePoolTier.BOSS ] ] @@ -7464,7 +7468,7 @@ export function initBiomes() { ] ], [ TrainerType.ROXIE, [ - [ Biome.SWAMP, BiomePoolTier.BOSS ] + [ Biome.SLUM, BiomePoolTier.BOSS ] ] ], [ TrainerType.BURGH, [ @@ -7612,7 +7616,7 @@ export function initBiomes() { [ TrainerType.AGATHA, [] ], [ TrainerType.LANCE, [] ], [ TrainerType.WILL, [] ], - [ TrainerType.KOGA, [] ], + [ TrainerType.KOGA_ELITE, [] ], [ TrainerType.KAREN, [] ], [ TrainerType.SIDNEY, [] ], [ TrainerType.PHOEBE, [] ], diff --git a/src/data/challenge.ts b/src/data/challenge.ts index 701183e1733..69349705d66 100644 --- a/src/data/challenge.ts +++ b/src/data/challenge.ts @@ -452,7 +452,7 @@ export class SingleGenerationChallenge extends Challenge { trainerTypes = [ TrainerType.LORELEI, TrainerType.WILL, TrainerType.SIDNEY, TrainerType.AARON, TrainerType.SHAUNTAL, TrainerType.MALVA, Utils.randSeedItem([ TrainerType.HALA, TrainerType.MOLAYNE ]),TrainerType.MARNIE_ELITE, TrainerType.RIKA ]; break; case 184: - trainerTypes = [ TrainerType.BRUNO, TrainerType.KOGA, TrainerType.PHOEBE, TrainerType.BERTHA, TrainerType.MARSHAL, TrainerType.SIEBOLD, TrainerType.OLIVIA, TrainerType.NESSA_ELITE, TrainerType.POPPY ]; + trainerTypes = [ TrainerType.BRUNO, TrainerType.KOGA_ELITE, TrainerType.PHOEBE, TrainerType.BERTHA, TrainerType.MARSHAL, TrainerType.SIEBOLD, TrainerType.OLIVIA, TrainerType.NESSA_ELITE, TrainerType.POPPY ]; break; case 186: trainerTypes = [ TrainerType.AGATHA, TrainerType.BRUNO, TrainerType.GLACIA, TrainerType.FLINT, TrainerType.GRIMSLEY, TrainerType.WIKSTROM, TrainerType.ACEROLA, Utils.randSeedItem([TrainerType.BEA_ELITE,TrainerType.ALLISTER_ELITE]), TrainerType.LARRY_ELITE ]; diff --git a/src/data/dialogue.ts b/src/data/dialogue.ts index ec3358b1a77..18a015e3549 100644 --- a/src/data/dialogue.ts +++ b/src/data/dialogue.ts @@ -753,6 +753,17 @@ export const trainerTypeDialogue: TrainerTypeDialogue = { "dialogue:janine.defeat.3", ] }, + [TrainerType.KOGA]: { + encounter: [ + "dialogue:koga.encounter.1" + ], + victory: [ + "dialogue:koga.victory.1" + ], + defeat: [ + "dialogue:koga.defeat.1" + ] + }, [TrainerType.SABRINA]: { encounter: [ "dialogue:sabrina.encounter.1", @@ -1482,15 +1493,15 @@ export const trainerTypeDialogue: TrainerTypeDialogue = { "dialogue:bugsy.defeat.1" ] }, - [TrainerType.KOGA]: { + [TrainerType.KOGA_ELITE]: { encounter: [ - "dialogue:koga.encounter.1" + "dialogue:koga_elite.encounter.1" ], victory: [ - "dialogue:koga.victory.1" + "dialogue:koga_elite.victory.1" ], defeat: [ - "dialogue:koga.defeat.1" + "dialogue:koga_elite.defeat.1" ] }, [TrainerType.BERTHA]: { diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 54aa566d64c..562a9d4d2dc 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -329,6 +329,9 @@ export class TrainerConfig { case TrainerType.RAIHAN_ELITE: trainerType = TrainerType.RAIHAN; break; + case TrainerType.KOGA_ELITE: + trainerType = TrainerType.KOGA; + break; } return trainerType; @@ -891,6 +894,7 @@ export const signatureSpecies: SignatureSpecies = { LT_SURGE: [Species.VOLTORB, Species.PIKACHU, Species.ELECTABUZZ], ERIKA: [Species.ODDISH, Species.BELLSPROUT, Species.TANGELA, Species.HOPPIP], JANINE: [Species.VENONAT, Species.SPINARAK, Species.ZUBAT], + KOGA: [Species.KOFFING, Species.GRIMER, Species.VENONAT], SABRINA: [Species.ABRA, Species.MR_MIME, Species.ESPEON], BLAINE: [Species.GROWLITHE, Species.PONYTA, Species.MAGMAR], GIOVANNI: [Species.DIGLETT, Species.NIDORAN_M, Species.NIDOQUEEN, Species.RHYHORN], @@ -965,7 +969,7 @@ export const signatureSpecies: SignatureSpecies = { AGATHA: [Species.GENGAR, [Species.ARBOK, Species.WEEZING], Species.CROBAT, Species.ALOLA_MAROWAK], LANCE: [Species.DRAGONITE, Species.GYARADOS, Species.AERODACTYL, Species.ALOLA_EXEGGUTOR], WILL: [Species.XATU, Species.JYNX, [Species.SLOWBRO, Species.SLOWKING], Species.EXEGGUTOR], - KOGA: [[Species.WEEZING, Species.MUK], [Species.VENOMOTH, Species.ARIADOS], Species.CROBAT, Species.TENTACRUEL], + KOGA_ELITE: [Species.MUK, Species.VENOMOTH, [Species.ARIADOS, Species.FORRETRESS], Species.CROBAT], KAREN: [Species.UMBREON, Species.HONCHKROW, Species.HOUNDOOM, Species.WEAVILE], SIDNEY: [[Species.SHIFTRY, Species.CACTURNE], [Species.SHARPEDO, Species.CRAWDAUNT], Species.ABSOL, Species.MIGHTYENA], PHOEBE: [Species.SABLEYE, Species.DUSKNOIR, Species.BANETTE, [Species.MISMAGIUS, Species.DRIFBLIM]], @@ -1227,6 +1231,7 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LT_SURGE"],true, Type.ELECTRIC).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), [TrainerType.ERIKA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ERIKA"],false, Type.GRASS).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), [TrainerType.JANINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JANINE"],false, Type.POISON).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), + [TrainerType.KOGA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KOGA"],false, Type.POISON).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), [TrainerType.SABRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SABRINA"],false, Type.PSYCHIC).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), [TrainerType.BLAINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BLAINE"],true, Type.FIRE).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), [TrainerType.GIOVANNI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GIOVANNI"],true, Type.GROUND).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), @@ -1302,7 +1307,7 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AGATHA"], false,Type.GHOST).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), [TrainerType.LANCE]: new TrainerConfig(++t).setName("Lance").initForEliteFour(signatureSpecies["LANCE"],true, Type.DRAGON).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"), [TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WILL"],true, Type.PSYCHIC).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), - [TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KOGA"], true, Type.POISON).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), + [TrainerType.KOGA_ELITE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KOGA_ELITE"], true, Type.POISON).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), [TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAREN"],false, Type.DARK).setBattleBgm("battle_johto_gym").setMixedBattleBgm("battle_johto_gym"), [TrainerType.SIDNEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIDNEY"],true, Type.DARK).setMixedBattleBgm("battle_hoenn_elite"), [TrainerType.PHOEBE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["PHOEBE"],false, Type.GHOST).setMixedBattleBgm("battle_hoenn_elite"), diff --git a/src/enums/trainer-type.ts b/src/enums/trainer-type.ts index 6bd8f567acb..1a4b44ce438 100644 --- a/src/enums/trainer-type.ts +++ b/src/enums/trainer-type.ts @@ -76,6 +76,7 @@ export enum TrainerType { LT_SURGE, ERIKA, JANINE, + KOGA, SABRINA, BLAINE, GIOVANNI, @@ -150,7 +151,7 @@ export enum TrainerType { AGATHA, LANCE, WILL, - KOGA, + KOGA_ELITE, KAREN, SIDNEY, PHOEBE, diff --git a/src/locales/de/dialogue.ts b/src/locales/de/dialogue.ts index 02c497b3182..f458cae205c 100644 --- a/src/locales/de/dialogue.ts +++ b/src/locales/de/dialogue.ts @@ -1474,6 +1474,17 @@ export const PGMdialogue: DialogueTranslationEntries = { 1: "Hast du gelernt, die Techniken der Ninja zu fürchten?" } }, + "koga_elite": { + "encounter": { + 1: "Fwahahahaha! Pokémon sind nicht nur rohe Gewalt - das wirst du bald genug sehen!" + }, + "victory": { + 1: "Ah! Du hast deinen Wert bewiesen!" + }, + "defeat": { + 1: "Hast du gelernt, die Techniken der Ninja zu fürchten?" + } + }, "bertha": { "encounter": { 1: "Nun, würdest du dieser alten Dame zeigen, wie viel du gelernt hast?" diff --git a/src/locales/en/dialogue.ts b/src/locales/en/dialogue.ts index dda8891b788..4ae8eb398d4 100644 --- a/src/locales/en/dialogue.ts +++ b/src/locales/en/dialogue.ts @@ -1420,6 +1420,17 @@ export const PGMdialogue: DialogueTranslationEntries = { } }, "koga": { + "encounter": { + 1: "Fwahahaha! Very well, I shall show you true terror as a ninja master!" + }, + "victory": { + 1: "Humph! You've proven your worth!" + }, + "defeat": { + 1: "Despair to the creeping horror of Poison-type Pokémon!" + } + }, + "koga_elite": { "encounter": { 1: "Fwahahahaha! Pokémon are not merely about brute force--you shall see soon enough!" }, diff --git a/src/locales/es/dialogue.ts b/src/locales/es/dialogue.ts index d19acc3ec0f..31aa883a3d9 100644 --- a/src/locales/es/dialogue.ts +++ b/src/locales/es/dialogue.ts @@ -1417,6 +1417,17 @@ export const PGMdialogue: DialogueTranslationEntries = { } }, "koga": { + "encounter": { + 1: "Fwahahaha! Very well, I shall show you true terror as a ninja master!" + }, + "victory": { + 1: "Humph! You've proven your worth!" + }, + "defeat": { + 1: "Despair to the creeping horror of Poison-type Pokémon!" + } + }, + "koga_elite": { "encounter": { 1: "Fwahahahaha! Pokémon are not merely about brute force--you shall see soon enough!" }, diff --git a/src/locales/fr/dialogue.ts b/src/locales/fr/dialogue.ts index d3ec5f85d5d..9858194c4f4 100644 --- a/src/locales/fr/dialogue.ts +++ b/src/locales/fr/dialogue.ts @@ -1417,6 +1417,17 @@ export const PGMdialogue: DialogueTranslationEntries = { } }, "koga": { + "encounter": { + 1: "Fwahahaha! Very well, I shall show you true terror as a ninja master!" + }, + "victory": { + 1: "Humph! You've proven your worth!" + }, + "defeat": { + 1: "Despair to the creeping horror of Poison-type Pokémon!" + } + }, + "koga_elite": { "encounter": { 1: "Fwahahahaha! Pokémon are not merely about brute force--you shall see soon enough!" }, @@ -3925,6 +3936,17 @@ export const PGFdialogue: DialogueTranslationEntries = { } }, "koga": { + "encounter": { + 1: "Fwahahaha! Very well, I shall show you true terror as a ninja master!" + }, + "victory": { + 1: "Humph! You've proven your worth!" + }, + "defeat": { + 1: "Despair to the creeping horror of Poison-type Pokémon!" + } + }, + "koga_elite": { "encounter": { 1: "Fwahahahaha! Pokémon are not merely about brute force--you shall see soon enough!" }, diff --git a/src/locales/it/dialogue.ts b/src/locales/it/dialogue.ts index 702b550c45a..0d77a70e508 100644 --- a/src/locales/it/dialogue.ts +++ b/src/locales/it/dialogue.ts @@ -1417,6 +1417,17 @@ export const PGMdialogue: DialogueTranslationEntries = { } }, "koga": { + "encounter": { + 1: "Fwahahaha! Very well, I shall show you true terror as a ninja master!" + }, + "victory": { + 1: "Humph! You've proven your worth!" + }, + "defeat": { + 1: "Despair to the creeping horror of Poison-type Pokémon!" + } + }, + "koga_elite": { "encounter": { 1: "Fwahahahaha! Pokémon are not merely about brute force--you shall see soon enough!" }, diff --git a/src/locales/pt_BR/dialogue.ts b/src/locales/pt_BR/dialogue.ts index 3325cf81cf9..74e915b8aba 100644 --- a/src/locales/pt_BR/dialogue.ts +++ b/src/locales/pt_BR/dialogue.ts @@ -1406,6 +1406,17 @@ export const PGMdialogue: DialogueTranslationEntries = { } }, "koga": { + "encounter": { + 1: "Fwahahaha! Very well, I shall show you true terror as a ninja master!" + }, + "victory": { + 1: "Humph! You've proven your worth!" + }, + "defeat": { + 1: "Despair to the creeping horror of Poison-type Pokémon!" + } + }, + "koga_elite": { "encounter": { 1: "Fwahahahaha! Pokémon não são apenas sobre força bruta--você verá em breve!" }, @@ -3717,6 +3728,17 @@ export const PGFdialogue: DialogueTranslationEntries = { } }, "koga": { + "encounter": { + 1: "Fwahahaha! Very well, I shall show you true terror as a ninja master!" + }, + "victory": { + 1: "Humph! You've proven your worth!" + }, + "defeat": { + 1: "Despair to the creeping horror of Poison-type Pokémon!" + } + }, + "koga_elite": { "encounter": { 1: "Fwahahahaha! Pokémon não são apenas sobre força bruta--você verá em breve!" }, diff --git a/src/locales/zh_CN/dialogue.ts b/src/locales/zh_CN/dialogue.ts index 6afbcd71064..2e3fce83c3f 100644 --- a/src/locales/zh_CN/dialogue.ts +++ b/src/locales/zh_CN/dialogue.ts @@ -1380,6 +1380,17 @@ export const PGMdialogue: DialogueTranslationEntries = { } }, "koga": { + "encounter": { + 1: "Fwahahaha! Very well, I shall show you true terror as a ninja master!" + }, + "victory": { + 1: "Humph! You've proven your worth!" + }, + "defeat": { + 1: "Despair to the creeping horror of Poison-type Pokémon!" + } + }, + "koga_elite": { "encounter": { 1: "哇哈哈哈哈!$宝可梦不仅仅是关于蛮力,拭目以待吧!", }, diff --git a/src/locales/zh_TW/dialogue.ts b/src/locales/zh_TW/dialogue.ts index 0823236bc84..c6f8d670973 100644 --- a/src/locales/zh_TW/dialogue.ts +++ b/src/locales/zh_TW/dialogue.ts @@ -1380,6 +1380,17 @@ export const PGMdialogue: DialogueTranslationEntries = { } }, "koga": { + "encounter": { + 1: "Fwahahaha! Very well, I shall show you true terror as a ninja master!" + }, + "victory": { + 1: "Humph! You've proven your worth!" + }, + "defeat": { + 1: "Despair to the creeping horror of Poison-type Pokémon!" + } + }, + "koga_elite": { "encounter": { 1: "哇哈哈哈哈!$寶可夢不僅僅是關於蠻力,拭目以待吧!", },