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

Synchro Procedure Unification #1954

Closed
wants to merge 109 commits into from
Closed

Conversation

Aephiex
Copy link
Contributor

@Aephiex Aephiex commented Aug 31, 2022

Requires:


Before:

Usual Synchro Procedure:

Pros:
  • Full support of Genomix Figher and Mono Synchron using assumptions
  • Full support of EFFECT_SYNCHRO_MATERIAL_CUSTOM
Cons:
  • Fully hard-coded
  • Only 2 filters are allowed, one of which is hard-coded to be a tuner
  • No group goals allowed
  • Tune Magician and Scrap Chimera requires different implementations

aux.AddSynchroMixProcedure

Pros:
  • More than 2 filters allowed
  • Group goals allowed
Cons:
  • Neglects assumptions
  • Neglects EFFECT_SYNCHRO_MATERIAL_CUSTOM and each of them must be implemented in another way
  • Tune Magician is supported, while Scrap Chimera is not
  • Does not banish synchro materials when Tatsunecro (c3096468) is used
  • Materials must be selected one-by-one in a determined order and cannot be unselected
  • The summon procedure cannot be canceled

After:

aux.AddSynchroUltimateProcedure

Pros:
  • Full support of Genomix Figher, Mono Synchron, and each EFFECT_SYNCHRO_MATERIAL_CUSTOM based on lua
  • Full support of Tune Magician, Scrap Chimera and like, using EFFECT_TUNER_MATERIAL_LIMIT
  • Multiple filters allowed
  • Group goal allowed
  • Materials can be selected in any order and can be unselected
  • Summon procedure can be canceled
Makes Obsolete:
  • EFFECT_SCRAP_CHIMERA
  • EFFECT_SYNCHRO_MATERIAL_CUSTOM
  • Duel.SetSynchroMaterial
  • Duel.SelectSynchroMaterial
  • Duel.CheckSynchroMaterial
  • Duel.SelectTunerMaterial
  • Duel.CheckTunerMaterial
  • GLOBALFLAG_SCRAP_CHIMERA
  • GLOBALFLAG_MUST_BE_SMATERIAL

Notes

  • According to https://ygocdb.com/faq/9434, if you use Mono Synchron and Tuningware at the same time, Tuningware is not allowed to be used as a level 2 material. It seems like Mono Synchron does not allow any other level modifier to take effect. Implementation using assumptions does not reflect this properly.
  • According to konami, if you use multiple tuners that allow hand synchro at the same time, you can only apply one of them. If you use two or more hand synchro tuners including Tatsunecro, you may have the synchro materials banished or sent to graveyard in your choice. Both previous and new implementations enforce the banishment.

@Aephiex Aephiex changed the title Rewrite Synchro Procedure Synchro Procedure Unification Aug 31, 2022
@Aephiex Aephiex marked this pull request as ready for review August 31, 2022 14:13
@Aephiex Aephiex closed this Oct 4, 2022
@Aephiex Aephiex deleted the patch-4 branch October 4, 2022 12:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant