Whebon / dale-of-merchants

Board Game Arena adaptation of Dale Of Merchants
Other
2 stars 0 forks source link

Interaction: Chameleon + `abortResolvingCard` #32

Closed Whebon closed 2 months ago

Whebon commented 2 months ago

When a chameleon is played as a technique, it is committed to the server (e.g. the binding is no longer "Local"). When the technique get canceled, the binding should be uncommitted and become local again.

Currently, the binding remains committed, as demonstrated by the copied shattered relic:

https://github.com/user-attachments/assets/1502e91b-d5fc-45c0-bf87-fc8129054fb7

Whebon commented 2 months ago

Cancelable techniques could be implemented as client states. Then the cancel button can have an onCancelClientTechnique handler that will return the scheduled card to hand.

This ensures that chameleon bindings are not committed yet.

Swift broker and shattered relic need to be refactored this way.

Update: I have decided NOT to refactor to client states. This allows opponents to see what is going on as players are resolving their technique. Also, it better suits the already implemented "schedule" -> "resolve" -> "abort" framework.

Whebon commented 2 months ago

The issue has been resolved. Played chameleon cards are cancelable (through the server) and can take back their original form.

Take note of the two different ways of aborting a chameleon card:

https://github.com/user-attachments/assets/b9dd73ff-ecdc-48c4-9bb2-56da83f91d7f