Card-Forge / forge

An unofficial rules engine for the world's greatest card game.
GNU General Public License v3.0
877 stars 525 forks source link

Esix, Fractal Bloom and multiple token creation #5176

Open thierryjacoel opened 2 months ago

thierryjacoel commented 2 months ago

Describe the bug For some cards, at least "Asinine Antics", "Ezuri's Predation" and "Terastodon", the replacement effect of "Esix, Fractal Bloom" is not applied correctly and only replaces the first token created.

To Reproduce Steps to reproduce the behavior: With "Asinine Antics" and "Ezuri's Predation": 1- Have enemy with at least 2 creatures and Esix on board 2- Cast "Asinine Antics" or "Ezuri's Predation" 3- Select Yes for the replacement effect of Esix 4- Select any creature 5- The first token is replaced with the selected creature, but all the other are not.

With "Terastodon": 1- Have Esix on board with at least 3 non creature permanents on your side 2- Cast Terastodon 3- On Terastodon ETB trigger, select 3 non creature permanents on your side 4- Select Yes for the replacement effect of Esix 5- Select Terastodon 6- Only the first token is replaced, the 2 other tokens are created as normal

Expected behavior On both cases, I would expect all tokens to be replaced with the creature I selected during Esix replacement effect's choice.

Desktop (please complete the following information): N/A

Smartphone (please complete the following information):

Additional context N/A

github-actions[bot] commented 1 month ago

This issue has not been updated in a while and has now been marked as stale. Stale messages will be auto closed.

github-actions[bot] commented 1 month ago

This issue was closed because it has been stalled for 5 days with no activity.

Hanmac commented 1 month ago

@tool4ever can you look into this?

tool4ever commented 1 month ago

The problem is those scripts being coded with RepeatEach.

I suppose some might be refactored to work without it? But imo it might be easier if you could implement a way for me to fill the same TokenTable which can then be processed after the loop (just like with ChangeZoneTable).

Hanmac commented 1 month ago

@tool4ever maybe something similar like the Damage Table and DamageResolve?

like a TokenResolve effect?