Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] [Beta] Add Aether Foundation, Team Skull, and Macro Cosmos as Evil Teams #3080

Closed
wants to merge 247 commits into from

Conversation

Blitz425
Copy link
Contributor

@Blitz425 Blitz425 commented Jul 21, 2024

What are the changes?

Added Aether Foundation and Team Skull from Sun/Moon, and Macro Cosmos from Sword/Shield

Why am I doing these changes?

Heavily requested feature from feature-vote in the discord, this additionally aims to add even more replayability and randomness factor to PokeRogue and give the player more references / love from the mainline titles to look forward to in their PokeRogue experience.

What did change?

  • Added Aether/Skull/Macro as possible Evil Team Spawns
  • Minor changes to a couple of the existing evil leader's teams to help redistribute to the new leaders.
  • Minor changes to certain Grunt's pool of Pokemon to redistribute to others

Screenshots/Videos

image
image
image

How to test the changes?

Start a classic run and check out the new encounters on floors 35, 62, 64, 66 ,112, 114, 115, and 165
You can also use overrides to jump to those floors

Checklist

  • There is no overlap with another PR?
  • The PR is self-contained and cannot be split into smaller PRs?
  • Have I provided a clear explanation of the changes?
  • Have I tested the changes (manually)?
    • Are all unit tests still passing? (npm run test)
  • Are the changes visual?
    • Have I provided screenshots/videos of the changes?

f-fsantos and others added 30 commits June 19, 2024 17:31
feat: Add link to Discord in menu UI

feat: Add Discord and Google login functionality

Add container around discord and google icons

refactor: Update environment variable names for Discord and Google client IDs

feat: Add "Or use" translation for login options in multiple languages

feat: Update menu UI translations for multiple languages

Code review fixes

refactor: Update Discord and Google client IDs in environment variables
this also reduces output noise in tests
* Localization(pt): translated bgm-name.ts

* fix
…gging

[Feature][ENV] make i18n debugging an optional env setting
* Update TMs for more Indigo Disk changes

* Fix typo, more Stored Power
* Refactor challenges and add fresh start

* Add achievement for fresh start challenge
* Fix random damage roll to be 85-100% instead of 85-99%

* Update battle.test.ts to reflect the fix
* [Help] [Move/Bug] Patches Psychic Terrain applicability edge cases

Was cancelling moves even if targeted mons weren't on the terrain.

* [Bug `]Pokemon.isGrounded` does not exist

Replaced with `Pokemon.isGrounded()`, which does.

* [Bug] Psychic Terrain priority move cancel ignoring ungrounded

* [Bug] Semi-invulnerable should not be grounded
* Prevent sizing error

* Make reboot not necessary for show BGM

* Makes the BGM Bar active by default

  + It had originally been decided that this would not be active by default because it was to be displayed outside the pause menu, but since its behavior has changed between this decision and its integration, the default deactivation is no longer necessary
…s#2254 (pagefaultgames#2906)

* Translate forgotten sentences on phases

* Translate to de forgotten sentences on phases

* Translate to es forgotten sentences on phases

* Translate to fr forgotten sentences on phases

* Translate to it forgotten sentences on phases

* Translate to ko forgotten sentences on phases

* Translate to pt br forgotten sentences on phases

* Translate to zh cn forgotten sentences on phases

* Translate to zh tw forgotten sentences on phases

* remove duplicate message

* remove duplicate message

* Update src/locales/pt_BR/battle.ts

Co-authored-by: José Ricardo Fleury Oliveira <[email protected]>

* Update src/locales/de/battle.ts

Co-authored-by: Jannik Tappert <[email protected]>

* Update src/locales/de/battle.ts

Co-authored-by: Jannik Tappert <[email protected]>

* Update battle.ts [Localization(it)]

* Update src/locales/zh_CN/battle.ts

Co-authored-by: Yonmaru40 <[email protected]>

---------

Co-authored-by: Alexis <[email protected]>
Co-authored-by: 송지원 <[email protected]>
Co-authored-by: José Ricardo Fleury Oliveira <[email protected]>
Co-authored-by: Jannik Tappert <[email protected]>
Co-authored-by: Niccolò <[email protected]>
Co-authored-by: Yonmaru40 <[email protected]>
…ltgames#2907)

* Translate pokemon summary

* Translate pokemon summary to fr

* Translate pokemon summary to de

* Translate pokemon summary to es

* Translate pokemon summary to it

* Translate pokemon summary to ko

* Translate pokemon summary to pt br

* Translate pokemon summary to zh cn

* Translate pokemon summary to zh tw

* Fix import

* Update partially for en and ko

* Update interface name for en

* Merge trainerLabel&Text and calculate typeLabel width

* Update src/locales/es/pokemon-summary.ts

Co-authored-by: GoldTra <[email protected]>

* Apply translations key to all languages with interface TranslationEtries

* Update ko/translationKey of status

* Update ko/translationKey of pokemonInfo

* Update de/translationKeys of memostring and metFragment

* Update de/translationKeys of memostring and metFragment 2

* Update src/locales/ko/pokemon-summary.ts

Co-authored-by: Enoch <[email protected]>

* Update src/locales/ko/pokemon-summary.ts

Co-authored-by: returntoice <[email protected]>

* Update src/locales/pt_BR/pokemon-summary.ts

Co-authored-by: José Ricardo Fleury Oliveira <[email protected]>

* Update src/locales/ko/pokemon-summary.ts

* Update src/locales/pt_BR/pokemon-summary.ts

Co-authored-by: José Ricardo Fleury Oliveira <[email protected]>

* Update pokemon-summary.ts [Localization(it)]

* remove unused code

* Update src/locales/zh_CN/pokemon-summary.ts

Co-authored-by: Yonmaru40 <[email protected]>

* Update src/locales/zh_CN/pokemon-summary.ts

Co-authored-by: Yonmaru40 <[email protected]>

* Update src/locales/zh_CN/pokemon-summary.ts

Co-authored-by: Yonmaru40 <[email protected]>

* Update src/locales/es/pokemon-summary.ts

Co-authored-by: Arxxer <[email protected]>

* Update src/locales/es/pokemon-summary.ts

Co-authored-by: Arxxer <[email protected]>

---------

Co-authored-by: Alexis <[email protected]>
Co-authored-by: Mr.WaterT <[email protected]>
Co-authored-by: Alexis Faizeau <[email protected]>
Co-authored-by: GoldTra <[email protected]>
Co-authored-by: returntoice <[email protected]>
Co-authored-by: José Ricardo Fleury Oliveira <[email protected]>
Co-authored-by: 송지원 <[email protected]>
Co-authored-by: Niccolò <[email protected]>
Co-authored-by: Yonmaru40 <[email protected]>
Co-authored-by: Arxxer <[email protected]>
Blitz425 and others added 5 commits July 24, 2024 14:41
…ames#3122)

* Bug Fix

* Update src/system/game-stats.ts

Co-authored-by: flx-sta <[email protected]>

* Fixing a test

* Revert "Fixing a test"

This reverts commit 1bdbe2d.

* Test Re-Run

---------

Co-authored-by: Frutescens <info@laptop>
Co-authored-by: flx-sta <[email protected]>
…ch and double battles (pagefaultgames#2462)

* Adjust how counter attacks target to account for uturn/voltswitch

* Creates move flag for metal burst/comeuppance to redirect in some cases

* Remove debug printing

* Bit shifts the redirect counter flag

* Removes extraneous class from prior testing

* Remove vitest timestamp file that was accidentally added
Mystic ticket icons in the achievements just confuse players
@CodeTappert
Copy link
Collaborator

You missed to add the localization placeholders for trainers.ts in es,it and zh_TW

Fontbane and others added 5 commits July 24, 2024 23:36
…red in dex (pagefaultgames#2713)

* Fix reins et al being available without unlocking second mon

* Small fix

* Parentheses for safety

* Add documentation to new function
Co-authored-by: Frutescens <info@laptop>
…stats (pagefaultgames#3117)

* Fixed OHKO moves being affected by accuracy and evasion battle stats

* Added related tests for Fissure, unskipped related test for Hustle

* Tweaked fissure accuracy and evasion tests to use spyOn() for getAccuracyMultiplier() as per feedback

* Fixed accuracy test for Fissure
* [Fix][Sprite] Politoed Back Sprites

Retrieved first version from history.
Rearranged frames to make jump a little less floaty.
Set same anim length for all variations.
Json is identical for all variations.
Spritesheet frame position is identical for all variations.
Trimmed the frame of extra space
Reduced file size of spritesheets and JSON due to less unique frames needed.

* [Fix][Sprite] Politoed Back Sprites  - Reformatted JSON to texturepacker standard

Reformatted json.
* fix remove pokemon menu

* fix dropdown all is not changing bug

* fix bug when go down with no starter on start button

* fix starter corsor bug on deletion. out of screen cursor bug

* fix challenge log

* fix lint error
@@ -1192,7 +1198,7 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerPoolTier.COMMON]: [Species.SLUGMA, Species.POOCHYENA, Species.NUMEL, Species.ZIGZAGOON, Species.DIGLETT, Species.MAGBY, Species.TORKOAL, Species.BALTOY, Species.BARBOACH],
[TrainerPoolTier.UNCOMMON]: [Species.SOLROCK, Species.HIPPOPOTAS, Species.SANDACONDA, Species.PHANPY, Species.SWINUB, Species.GLIGAR],
[TrainerPoolTier.RARE]: [Species.TRAPINCH, Species.HEATMOR],
[TrainerPoolTier.SUPER_RARE]: [Species.TURTONATOR, Species.CHARCADET]
[TrainerPoolTier.SUPER_RARE]: [Species.SCOVILLAIN, Species.CHARCADET]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason this one in particular is evolved?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't feel taking chances with stone evos as whatever coding we have for forcing an evolution likes to be inconsistent with those types of Pokemon, but the first Grunt fight is at Wave 35 regardless which logically the player could have gotten a stone at this point

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's okay to leave the unevo'd forms here and in other places. If it's a problem with the evolution delay function then we should be fixing that instead.

[TrainerPoolTier.COMMON]: [ Species.PIKIPEK, Species.ROCKRUFF, Species.ALOLA_DIGLETT, Species.YUNGOOS, Species.CORSOLA, Species.ALOLA_GEODUDE, Species.BOUNSWEET, Species.GROWLITHE, Species.KOMALA],
[TrainerPoolTier.UNCOMMON]: [ Species.POLIWAG, Species.STUFFUL, Species.ALOLA_EXEGGUTOR, Species.BRUXISH, Species.TURTONATOR, Species.COMFEY, Species.ALOLA_RAICHU, Species.ORICORIO],
[TrainerPoolTier.RARE]: [ Species.ORANGURU, Species.PORYGON, Species.PASSIMIAN, Species.GALAR_CORSOLA, Species.ALOLA_SANDSHREW, Species.ALOLA_VULPIX],
[TrainerPoolTier.SUPER_RARE]: [Species.JANGMO_O, Species.BAGON]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can Goomy get in here? It's used by an employee and fits the vibes imo. Some other suggestions: Finneon, Kecleon, Paras, Mudbray, Fomantis, Sudowoodo, Clamperl, Anorith, Lileep. Just some mons the Grunts have in games I found interesting, and helps sell the nature conservation theming. Maybe drop Yungoos or replace with Lillipup to avoid Skull overlap.

}),
[TrainerType.SKULL_GRUNT]: new TrainerConfig(++t).setHasGenders("Skull Grunt Female").setHasDouble("Team Skull Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_skull_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
.setSpeciesPools({
[TrainerPoolTier.COMMON]: [ Species.SALANDIT, Species.ALOLA_RATTATA, Species.ALOLA_MEOWTH, Species.SCRAGGY, Species.KOFFING, Species.ALOLA_GRIMER, Species.MAREANIE, Species.YUNGOOS, Species.SPINARAK, Species.WEEDLE],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding earlier comment about Yungoos: Maybe drop it from Skull and just have it for Aether for parallel with Rattata. Could also give Sewaddle to Aether as a more "peaceful" counterpart to Venipede. Maybe put Vullaby in Uncommon/Rare (it wears a skull) or Duskull.

p.setBoss(true, 2);
p.generateAndPopulateMoveset();
})),
[TrainerType.LUSAMINE_2]: new TrainerConfig(++t).setName("Lusamine").initForEvilTeamLeader("Aether Boss",[], true).setMixedBattleBgm("battle_aether_boss").setVictoryBgm("victory_team_plasma")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll go slot by slot:

  1. Honestly maybe just have Flutter Mane (and just Mismagius in fight 1). Though honestly I'd rather she have another UB than a paradox. I really think she should have Pheromosa somewhere- they clearly take design cues from one another, and gives her another UB, which is what her storyline's all about.
  2. I kind of like Lilligant better here? idk, kind of strikes me as a filler slot. Also consider without a cover legend she should probably get 3 sub-legendary tier mons.
  3. No comment
  4. No comment
  5. I agree with Temp Magearna's kinda meh- it's owned by Mohn and not her anyway. Again, I think she should get another UB, and this would be a good spot to fill. Otherwise I'd make Clef a boss over this since it's her main mon in the games.
  6. No comment

p.generateAndPopulateMoveset();
p.pokeball = PokeballType.MASTER_BALL;
})),
[TrainerType.GUZMA]: new TrainerConfig(++t).setName("Guzma").initForEvilTeamLeader("Skull Boss",[]).setMixedBattleBgm("battle_skull_boss").setVictoryBgm("victory_team_plasma")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we might need to make a different trainer level configuration to allow for the strongest mon to be sent out first.

  1. Team 1 is good
  2. Team 2 seems a little on the weaker side. Not sure what to do about that. Maybe set an extra boss to compensate.

p.pokeball = PokeballType.ULTRA_BALL;
p.pokeball = PokeballType.MASTER_BALL;
p.formIndex = 4;
p.shiny = true;
}))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.KYUREM ], TrainerSlot.TRAINER, true, p => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ghetsis: I don't think he really needs Volc. Never uses one in game and kind of overlaps with Alder's ace. I'd prefer he have Bisharp/Kingambit here (you can set it so the game doesn't force evolve Bisharp if that's an issue for you), as it's a more fitting mon to carry over into fight 2.
For fight 2 I think he should keep Cofagrigus/Runerigus over the Volc/Slither slot. It fits him well and seems to be somewhat of a constant on his teams. Also consider that he already has Kyurem, Genesect, and Hydreigon/Jugulis (which already satisfies cover legend-sublegend-mega or other sublegend). Not to mention Kingambit. Volc or another paradox mon is kind of over the top I think. Basculegion is uh, fine I guess. Again would rather have whichever Yamask evo, or Seismitoad.
Again regarding shiny Genesect, probably shouldn't. I don't think the movie reference is worth it especially a BW movie of all things.

@@ -1628,9 +1655,9 @@ export const trainerConfigs: TrainerConfigs = {
p.pokeball = PokeballType.MASTER_BALL;
})),
[TrainerType.CYRUS]: new TrainerConfig(++t).setName("Cyrus").initForEvilTeamLeader("Galactic Boss",[]).setMixedBattleBgm("battle_galactic_boss").setVictoryBgm("victory_team_plasma")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. I prefer Basculegion on Cyrus over Ghetsis tbh.
  2. I don't really get the Electrode. Team Galactic fronts as an energy company I guess. A Crobat/Gengar slot might be wise to counter his Fairy weakness. Or just keep the water slot tbh.

@@ -1628,9 +1655,9 @@ export const trainerConfigs: TrainerConfigs = {
p.pokeball = PokeballType.MASTER_BALL;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maxie: Galar Weezing might have anti synergy with Flygon if it rolls Misty Surge. Also if Maxie gets Crobat/Gliscor (fits him imo) Cyrus should probably get Crobat/Gengar in that slot instead.
Pelipper and Torkoal have their weather abilities in the second slot, not as Hidden abilities.

@@ -1524,7 +1551,7 @@ export const trainerConfigs: TrainerConfigs = {
p.generateName();
})),
[TrainerType.ROCKET_BOSS_GIOVANNI_2]: new TrainerConfig(++t).setName("Giovanni").initForEvilTeamLeader("Rocket Boss", [], true).setMixedBattleBgm("battle_rocket_boss").setVictoryBgm("victory_team_plasma")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Giovanni: I'll maintain that he should have Honchkrow. He was one of the first to have it and it's quite fitting to him as a yakuza leader. This ground team fits his gym leader battle more (I plan to redo gym leader teams soon). I'd suggest to give him both Nidos or Ttar, and also give him a Honchkrow (could have a variant slot if you want).
Regarding battle 2: Tyranitar vs Iron Thorns is kind of a big variation in difficulty. I'd probably just do Iron Thorns as a boss here, and maybe put Ttar on his first team. Seismitoad can be a variant for Gastrodon. Rhyperior or a Nido could still be slotted in somewhere I think. Also- the Excadrill strat falls apart without sand, which could happen if Hippowdon is sent out while Thorns sand is still up. Could afford to put a variant or two in one of those slots since it doesn't really make sense to have a separate sand setter for essentially just one more sand abuser.

$With Nihilego's power, I will show you how wrong you were to come here!`
},
"victory": {
1: `You hateful little Trainer! How dare you intrude upon this world that was meant for Nihilego and me?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ma'am this is a Tall Grass biome

KimJeongSun and others added 6 commits July 25, 2024 00:11
… HA (pagefaultgames#3138)

* Prevent evolution causing a swap from the second ability to the HA

* Add tests

* Update `starter-select-ui-handler.ts`
* More work

* More work

* Should be finished

* Fixed an error in checking target

* Moved white herb effect to StatChangePhase, 50% chance of consumption

* Added graphics for White Herb

* Balance and documentation

* Add localization entry for White Herb apply msg

* Add new keys to other localization files

* German translations

Co-authored-by: Jannik Tappert <[email protected]>

* Update item sprite atlas

* Redo item atlas

* Remove whitespace in move.ts

* Moved decrement outside conditional

* Fix item atlas

---------

Co-authored-by: Jannik Tappert <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.