-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
[Ability] Implement Illusion #3273
base: beta
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly NITs and minor adjustments. Brought up the idea of making illusion
a property of summonData
rather than to Pokemon
directly, may be something to look into but ultimately not a deal breaker.
Please add spaces before and after the video links so it embeds correctly, and add label on what the video shows. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still don't like how it's adding useIllusion
- a very specific parameter just for illusion to a lot of functions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall I feel like the scope of Illusion-specific data should be a bit more restricted, and Illusion-specific parameters should be more generalized. My main concerns are:
- It doesn't really make sense to have
illusion
as a field inPokemon
when it's explicitly an in-battle effect. Usually these kinds of effects are handled within the Pokemon'ssummonData
,battleData
,battleSummonData
, orturnData
depending on the effect's functionality. - The
useIllusion
parameter that's now fed to a lot of methods inPokemon
needs to change to account for future implementations that may want a similar effect (e.g. the enemy AI adjusting for form changes when evaluating type matchups). It would probably be more beneficial to adjust it to the inverse (say,useBaseType
) where, iftrue
, all effects that may change the Pokemon's observed type are ignored.
So i used a direct Pokemon reference for base Pokemon in the interface Illusion this is now way better, but not in illusion since wild Zorua will not create an illusion based on an existing pokemon. That's not a problem. |
Video.sin.titulo.Hecho.con.Clipchamp.1.mp4Illusion seems to be getting revealed in the battle end phase? Happens after both wild and trainer battles. Refreshing fixes it back. Recalling the Pokémon or arena change puts the illusion back. It's not a visual error because move generation adapts to it. Tested this by doing this override and selecting Zorua and a Normal Type like Lillipup. On wave 2 the move AI will favour Hex on what's supposed to be a Normal type illusion Zorua.
|
it was intentionnal but i found a bug when it's corrected (it's about save and quit during illusion) so i will update this pr when i will have time again |
Update : bug solved ! |
What are the changes?
Adding illusion ability, works with fusion also
Why am I doing these changes?
It's missing
What did change?
-Added PreSummonAbAttr class as ability attribute.
-Illusion uses the appearance of the last conscious and available Pokémon in the party (ignoring itself), including :
Species, Form, Shininess, Pokeball, Gender
-If We encounter a wild Zorua/Zoroak he will use the illusion of a pokemon in the current biome. Depending on Zorua or Zoroark level the illusion will be evolved or not.
-If we encounter a boss Zoroark he will use the illusion of Entei, Suicune or Raiku like in the original game.
-Once the illusion is broken, the pokemon with illusion can't use illusion again in the battle
-After a battle, the pokemon can use illusion again.
-The AI move choice will be affected by the illusion.
-The type will always be displayed as the Pokémon it is disguised as, even when affected by Soak etc.
-The illusion will disappear if the Pokemon has its ability changed or suppressed.
-Pokemon cannot transform into a Pokémon that is disguised by Illusion.
-Pokemon that are disguised by Illusion cannot Transform.
-Illusion will not activate if the last conscious Pokémon is a Terastallized Ogerpon or Terapagos.
Screenshots/Videos
https://discord.com/channels/1125469663833370665/1176874654015684739/1257835032647831682
https://discord.com/channels/1125469663833370665/1176874654015684739/1257864381937619045
https://discord.com/channels/1125469663833370665/1176874654015684739/1257865512801538059
https://discord.com/channels/1125469663833370665/1176874654015684739/1258418548074745958
How to test the changes?
I played Zoroark and override the enemy pokemon with Zoroark so we can see him using correct illusion
I used illusion on a fusion and with a fusion
I tried to switch with the illusion
We can also run
npm run test illusion
Old conversations here :
#2217
The link for the localization pr :
pagefaultgames/pokerogue-locales#26
Checklist
npm run test
)