-
Notifications
You must be signed in to change notification settings - Fork 511
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
Attraction Support #5357
Attraction Support #5357
Conversation
# Conflicts: # forge-core/src/main/java/forge/card/CardRules.java
# Conflicts: # forge-core/src/main/java/forge/card/CardRules.java
Untangled some oracle text methods in Card and CardState Sly Spy, Everythingamajig, and two Garbage Elementals Visit card text fix. 2 more Attractions
# Conflicts: # forge-core/src/main/java/forge/card/CardFace.java # forge-core/src/main/java/forge/card/CardRules.java
Add countByName to Deck
…fting the responsibility of recognizing potential Commanders elsewhere.
…he mobile card manager.
Prize mechanic.
# Conflicts: # forge-core/src/main/java/forge/deck/DeckFormat.java
Moving from draft PR to full PR. Features added: Things not yet done, investigated, and/or tested: Things that'd be nice to do at some point down the line: |
# Conflicts: # forge-game/src/main/java/forge/game/player/Player.java
Consolidated rollToVisitAttractions logic back into RollDiceEffect.
First draft of Attractions. Still has a few hurdles to clear but you can add an Attraction section to a deck and play them in game (with deck conformance disabled since there are only two so far).
The weirdest new component to all this, and one I was most looking for feedback on, is something I'm calling "functional variants" - a property used to reconcile different prints with the same card name having different behavior (namely, the lights).
The script for an Attraction looks like this:
The lines beginning with
Variant:Name
match to the same name specified in an optional additional parameter in the edition file:When a card is generated via CardFactory, if there's a variant name specified for the paper card, any matching Variant lines in the script will be applied in addition to the rest of the script. So far it's only been tested with Lights, but it's designed to work with any property. The intent was that it would also enable implementations for some variants of other Un-cards, such as Everythingamajig and Garbage Elemental. There are still some parts of the implementation that need smoothing out, but it works as a proof-of-concept for now, and some input would be nice before spending more time polishing it up.
I think most of the rest is relatively straightforward, with the Attraction deck largely precedented by Planechase and Scheme decks. There are still some things left to do, which is why I'm putting this up as a draft for now. My list includes:
Prize keywordTriggerClaimPrizeMobile Deck builder supportAdventure deck builder support?"number of attractions you visited this turn"Detail description for Visit keyword. Currently shows Visit:TrigScryAttraction roll result dialog has an extra "Result:" in its textNice-to-haves:
Reorganize RollDiceEffect.rollDiceForPlayer to remove dependency on SpellAbility - Right now rollToVisitYourAttractions() copypastes most of rollDiceForPlayerMove functional variant properties to a different ICardFace implementation(Tried it; turned into an exercise in code duplication without much obvious benefit. May revisit someday.)