Skip to content

WIP - Implement Paradigm mechanic#14684

Draft
theelk801 wants to merge 1 commit intomasterfrom
feature/implement-paradigm-mechanic
Draft

WIP - Implement Paradigm mechanic#14684
theelk801 wants to merge 1 commit intomasterfrom
feature/implement-paradigm-mechanic

Conversation

@theelk801
Copy link
Copy Markdown
Contributor

Haven't tested this yet, needs tests, etc

}
return;
case BEGINNING_PHASE_PRE:
if (game.getTurnNum() == 1) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't work for other players. And I don't understand why you need that watcher at all (to clear and to check) - it must trigger on any main 1 and it does by PRECOMBAT_MAIN_PHASE_PRE above in ParadigmDelayedTriggeredAbility.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's the same as the one for Once Upon a Time, it has to clear at the beginning of the game because watchers stay for the whole match

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because watchers stay for the whole match

Hmm… Nope. Game watchers clear on each game (it’s created for each game). Only user’s data (player) share inside match.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well the Once Upon a Time watcher needed the code because it wasn't always resetting between games and I'm pretty sure it was happening during matches

}
}
if (result) {
game.fireEvent(new GameEvent(GameEvent.EventType.RESOLVING_ABILITY, this.getId(), this.getSpellAbility(), this.getControllerId()));
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are added new event SPELL_RESOLVED, but using RESOLVING_ABILITY instead

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah forgot to change that, thanks for catching

if (player == null) {
return false;
}
player.moveCardsToExile(sourceCard, source, game, true, null, "Paradigm");
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be replaced by setToZone instead full replace?

Image


@Override
public boolean checkTrigger(GameEvent event, Game game) {
return game.isActivePlayer(getControllerId());
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use cases:

  1. Is it trigger with copied spells on stack (no copy in exile so no trigger)?
  2. Is it trigger after remove from exile (no card in exile so no trigger)?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, it doesn't matter if the spell was a copy or if it's in exile, it still creates the copy each turn

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants