Skip to content

Fix Siren Concerto allowing itself to be selected (#392)#396

Open
Vladdudu12 wants to merge 1 commit into
sindreslungaard:mainfrom
Vladdudu12:fix/392-siren-concerto-self-select
Open

Fix Siren Concerto allowing itself to be selected (#392)#396
Vladdudu12 wants to merge 1 commit into
sindreslungaard:mainfrom
Vladdudu12:fix/392-siren-concerto-self-select

Conversation

@Vladdudu12
Copy link
Copy Markdown

📝 Summary

Fixes #392. Siren Concerto's effect reads:

Put a card from your mana zone into your hand. Then put a card from your hand into your mana zone.

The second prompt allowed the player to select the Siren Concerto itself, even though by Duel Masters rules a spell being cast is on the stack and not actually in the hand. Selecting it caused Siren Concerto to be put into the mana zone instead of the graveyard, effectively refunding its cost and turning the spell into a free mana-zone card swap.

The fix changes the second fx.Select to fx.SelectFilter with a predicate that excludes the casting card by ID:

func(x *match.Card) bool { return x.ID != card.ID }

Cards retrieved from the mana zone in the first part of the effect remain selectable in the second part (this is correct per the rules — "then" implies sequential resolution, and the cost is still paid).

Note: while working on this I noticed Siren Concerto is also missing fx.ShieldTrigger in its c.Use(...) call despite the card text starting with "Shield trigger." Filed separately as #XXX to keep this PR focused.

🎴 New Cards Added

🐞 Bugs Fixed

🔧 Other Changes

✅ Checklist

Please confirm the following before submitting your PR:

  • I have read CONTRIBUTING.md
  • The changes has been tested locally
  • The PR does not contain an excessive amount of changes that could have been split up into multiple PRs

📸 Screenshots (if applicable)

Manually tested in a local match:

  • Cast Siren Concerto with cards in hand and mana -> first prompt offers mana-zone cards -> pick one -> it moves to hand -> second prompt does NOT include Siren Concerto in the selectable list -> pick any other card -> it moves to mana -> Siren Concerto goes to graveyard
  • Cast Siren Concerto, retrieve Elf X from mana -> second prompt -> Elf X is still selectable (correct per the rules) -> pick Elf X -> Elf X goes back to mana -> Siren Concerto goes to graveyard
  • Cast Siren Concerto with only Siren Concerto in hand -> used Aqua Vehicle as the mana cost -> first prompt retrieves Aqua Vehicle to hand -> since Aqua Vehicle is the only eligible card for the second part of the effect, it is automatically placed back in the mana zone -> Siren Concerto goes to graveyard

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.

Siren Concerto-bugged, gives HUGE advantage

1 participant