PokemonWorkshop / PokemonStudio

Pokémon Studio is a monster taming game editor which helps you to bring your ideas to life, in just a few clicks.
https://pokemonworkshop.com/
Other
105 stars 9 forks source link

Fix an issue with a tooltip that remains displayed when it shouldn't #348

Closed Zodiarche closed 2 months ago

Zodiarche commented 3 months ago

Description

When importing specific trainers, the tooltip was displayed unexpectedly.

Tests to perform

Palbolsky commented 3 months ago

J'ai réussi à reproduire le problème, mais le fix ne me semble pas bon car maintenant le tooltip ne pourra jamais s'afficher car la condition trainer.party.length > 6 ne sera jamais valide.

Le code de base sans changement est presque bon, le problème ce n'est pas la fonction canImport mais le tooltip qui se refresh trop vite et prend en compte les Pokémon qui viennent d'être ajoutés. La solution est de faire en sorte que la fonction canImport utilise un clone de trainer qui est cloné à l'ouverture de l'éditeur mais plus modifié après. Cela afin que lorsqu'on ajoute les Pokémon dans le dresseur, le clone ne subira pas le changement et le tooltip n'aura aucune raison de s'afficher pour rien.

Zodiarche commented 3 months ago

Je vois ce que vous voulez dire, mais j'ai l'impression que dans tous les cas cette vérification est un peu inutile car le plus important c'est d'empêcher l'importation, pas de vérifier après l'importation, et on a déjà une sécurité sur l'importation en elle-même, on ne pouvait juste pas enlever cette logique au final ?

Palbolsky commented 3 months ago

Je vois ce que vous voulez dire, mais j'ai l'impression que dans tous les cas cette vérification est un peu inutile car le plus important c'est d'empêcher l'importation, pas de vérifier après l'importation, et on a déjà une sécurité sur l'importation en elle-même, on ne pouvait juste pas enlever cette logique au final ?

Tu as un bouton disabled, donc il faut informer l'utilisateur pourquoi il n'est pas utilisable, donc on a besoin du tooltip. On ne veut pas vérifier ce qui se passe après l'importation, mais c'est ce que faisait le code (bien que c'était pas voulu), d'où le tooltip qui s'affichait à la fermeture de l'éditeur. C'est pour ça qu'en clonant on évite ce problème, on met à jour le dresseur quand on importe, mais pas le clone donc ça évite que le canImport se trigger pour rien.