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

Implement variant Alolan and Galarian forms #453

Closed
48 of 81 tasks
Rangi42 opened this issue Mar 29, 2020 · 6 comments
Closed
48 of 81 tasks

Implement variant Alolan and Galarian forms #453

Rangi42 opened this issue Mar 29, 2020 · 6 comments

Comments

@Rangi42
Copy link
Owner

Rangi42 commented Mar 29, 2020

Animated front sprites and good back sprites:

  • Alolan Rattata
  • Alolan Raticate
  • Alolan Sandshrew
  • Alolan Sandslash
  • Alolan Vulpix
  • Alolan Ninetales
  • Alolan Diglett
  • Alolan Dugtrio
  • Alolan Meowth
  • Alolan Persian
  • Alolan Geodude
  • Alolan Graveler
  • Alolan Golem
  • Alolan Grimer
  • Alolan Muk
  • Alolan Raichu
  • Alolan Exeggutor
  • Alolan Marowak
  • Galarian Ponyta
  • Galarian Rapidash
  • Galarian Slowpoke
  • Galarian Slowbro
  • Galarian Slowking
  • Galarian Weezing
  • Galarian Articuno
  • Galarian Zapdos
  • Galarian Moltres

Party menu icons:

  • Alolan Rattata
  • Alolan Raticate
  • Alolan Sandshrew
  • Alolan Sandslash
  • Alolan Vulpix
  • Alolan Ninetales
  • Alolan Diglett
  • Alolan Dugtrio
  • Alolan Meowth
  • Alolan Persian
  • Alolan Geodude
  • Alolan Graveler
  • Alolan Golem
  • Alolan Grimer
  • Alolan Muk
  • Alolan Raichu
  • Alolan Exeggutor
  • Alolan Marowak
  • Galarian Ponyta
  • Galarian Rapidash
  • Galarian Slowpoke
  • Galarian Slowbro
  • Galarian Slowking
  • Galarian Weezing
  • Galarian Articuno
  • Galarian Zapdos
  • Galarian Moltres

Wild locations (see GenerateWildForm):

  • Alolan Rattata
  • Alolan Raticate
  • Alolan Sandshrew
  • Alolan Sandslash
  • Alolan Vulpix
  • Alolan Ninetales
  • Alolan Diglett
  • Alolan Dugtrio
  • Alolan Meowth
  • Alolan Persian
  • Alolan Geodude
  • Alolan Graveler
  • Alolan Golem
  • Alolan Grimer
  • Alolan Muk
  • Alolan Raichu
  • Alolan Exeggutor
  • Alolan Marowak
  • Galarian Ponyta
  • Galarian Rapidash
  • Galarian Slowpoke
  • Galarian Slowbro
  • Galarian Slowking
  • Galarian Weezing
  • Galarian Articuno
  • Galarian Zapdos
  • Galarian Moltres
@Rangi42
Copy link
Owner Author

Rangi42 commented Mar 29, 2020

It doesn't really matter whether to use the GetVariant function or a raw Form value with and FORM_MASK. GetVariant only differs for Pikachu and Mewtwo; Mewtwo will later be changed to use a standard Form value, and Pikachu only differs in its sprite animation, like Unown or Magikarp. So GetBaseData can use whichever source of a form value is more convenient.

@Rangi42
Copy link
Owner Author

Rangi42 commented Mar 30, 2020

The one remaining call GetBaseData in TryAddMonToParty/GeneratePartyMonStats is needed for a lot of cases: new wild Pokémon, reloaded roaming Pokémon, trainers with hard-coded personality/DV/EV/etc values, gift Pokemon, etc. There's also duplicated code between it and DayCare_InitBreeding, since new Eggs and new wilds have similar initialization.

@Rangi42
Copy link
Owner Author

Rangi42 commented Apr 1, 2020

Regarding TryAddMonToParty, these are the cases:

  • Generate a new gift party Pokémon: the form is already set from givepoke/giveegg in [wCurForm], so call GetBaseData, then use the value from [wCurForm] when initializing wDVAndPersonalityBuffer
  • Generate a new wild Pokémon: set the appropriate form (based on location, time of day, etc; currently done in LoadEnemyMon) to [wCurForm], then call GetBaseData, then use the value from [wCurForm] when initializing wDVAndPersonalityBuffer
  • Load a roaming Pokémon: load its form from wRoamMon#Form & FORM_MASK to [wCurForm], then call GetBaseData, then (as is done already) use the value from wRoamMon#Form when initializing wDVAndPersonalityBuffer
  • Load a trainer Pokémon: load the right one's form from the party if one is specified, else default to form 1; this is only needed for FillMoves, since trainers with non-default forms will recalculate their stats after ReadTrainerParty

@Rangi42
Copy link
Owner Author

Rangi42 commented Apr 2, 2020

Call graphcs:

  • StartBattleBattleIntroInitEnemyInitEnemyTrainerReadTrainerPartyTryAddMonToParty
  • StartBattleBattleIntroInitEnemyInitEnemyWildmonLoadEnemyMonTryAddMonToParty
  • GivePokeTryAddMonToParty; if that fails, GivePokeLoadEnemyMon to deposit in PC

@Rangi42 Rangi42 mentioned this issue Apr 22, 2020
21 tasks
@FredrIQ
Copy link
Collaborator

FredrIQ commented Oct 3, 2022

#738 adds a bunch of unavailable regional formes as wild encounters. I checked those off in the list above.

@itsdarsh
Copy link
Collaborator

itsdarsh commented May 19, 2023

As far as I can tell, all graphics have been implemented. Placing them in-game, however, have not been fully implemented, so I'll leave #486 open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants