* Make "to your mana pool" optional in mana abilities
* Remove "to your mana pool" entirely
* Remove "to your mana pool" in card scripts
* Remove "to your mana pool" in scripts_missing
* Remove "to your mana pool" from other places
* Remove "to [anyone's] mana pool"
* Add createYou method for counter is put triggers
* Add "when you put one or more counter" to MagicAbility.java
* Add Defiant Greatmaw
* Add Hapatra, Vizier of Poisons and Snake token
* Add superclass accept check to created triggers
* Add Nest of Scarabs and Insect token
* Add Obelisk Spider
* Add source argument to ChangeCountersAction
* Add source argument to usages of ChangeCountersAction in event package
* Update usages in DealDamageAction
* Update usages in trigger package
* Change source argument to player argument
The oracle text refers to the player putting counters, so it's more
logical to have a player argument.
* Add player data to MagicCounterChangeTriggerData
* Update DealDamageAction
* Change to player in event package
* Change to player argument in trigger package
* Add import
* Fix usage in test package
* Fix usage in groovy scripts
* Fix bug
* Fix typos.
* Remove unnecessary boxing/unboxing.
* Replace traditional 'for' loops with 'foreach' loops.
* Replace explicit types with <> (diamonds) where they can be inferred.
* Collapse identical catch branches.
* Replace statement lambda with expression lambda for short statements.
* Remove unnecessary imports.
* Replace some lambdas with Comparator.comparing
* Replace Runnables with lambdas.
* Use addAll instead of adding whole collection manually.
* Simplify boolean expressions.
* Remove redundant 'else'.
* Simplify some boolean conditions that are always true or false.
* Inline redundant local variables.
* Remove extraneous semicolons.
* Fix Javadoc errors.
* Replace anonymous classes with lambdas.
* Replace chain of 'if's with switch.
* Remove delaration of exception that is never thrown.
* Use String/StringBuilder properly.
* Add CounterIsAddedTrigger
* Add counter type to MagicCounterChangeTriggerData
* Rename CounterIsAdded to CounterIsPlaced
* Add CounterIsRemovedTrigger
* Add executeTrigger statements to ChangeCountersAction
* Fix errors
* Add IfCounterWouldChangeTrigger
* Change CounterIsPlacedTrigger to also have counterType argument
* Add when one or more counter is placed to MagicAbility
* Rename CounterIsPlacedTrigger to OneOrMoreCounterIsPlacedTrigger
* Change one or more counter is placed on SN to on permanent
* Change OneOrMoreCounterIsPlaced to OneOrMoreCountersArePlaced
* Add "are put" to counter checking
* Remove counter removed trigger type
* Change CountersArePlaced to CountersArePut
* Remove CounterIsRemovedTrigger.java
* Add cards that doesn't need groovy
* Revert "Add cards that doesn't need groovy"
This reverts commit 05f8782baba7280edb24c41a9f0ddeb6f54a312d.
* Add Enduring Scalelord
* Add ACounterIsPutTrigger
* Add Bloodcrazed Hoplite
* Add Fathom Mage
* Add Flourishing Defenses
* Rename counterType argument to aCounterType
* Use ARG.WORD1 in MagicAbility
* Change TriggerType name
* "it" and "SN" are synonyms, use both forms where this is true.
* Generalize parsing of targets
* Generalize parsing of targets with filter generator with numeric parameters.
* Simplify some of the existing Groovy scripts
* Simplify and refactor spells and CMC filters.
* Generalize parsing of spells with numeric parameters.
* Generalize parsing of permanent targets, support numeric parameters.
* Simplify parsing simple prefixes (color, type, subtype).
Use regexes instead of only looping over all possible colors/types/subtypes.
* Add three cards that are now supported with parser improvements:
Horribly Awry
Radiant Kavu
Thoughtbind
* Remove complex old-style filters that are unreferenced from Java / Groovy.
* Further simplification of predefined rules.
* Fix bad mana cost in Sequestered Stash
* Add more new cards after playtesting (credit goes to Kelsioboy):
Akuta, Born of Ash
Dark Dabbling
Defiling Tears
Doorkeeper
Dragon Grip
Explorer's Scope
Gigapede
Guul Draz Overseer
Into the Wilds
Salt Road Ambushers
Tainted Remedy
Terrifying Presence
Thrasios, Triton Hero
Trail of Mystery
Yomiji, Who Bars the Way
* Cleanup: Remove trailing whitespace from scripts
* Fix all HTTP to HTTPS for magiccards.info
* Add Aetherstorm Roc
* Add Dubious Challenge
* Fix cost event of Aetherstorm Roc
* Fix Aetherstorm Roc
* Add MagicPayEnergyEvent in Aetherstorm Roc
* Add Fateful Showdown
* Add Madcap Experiment
* Add Tezzeret's Betrayal
* Add Treasure Keeper
* Add Edifice of Authority
* Add Gate to the Afterlife
* Remove groovy ability in Gate_to_the_Afterlife.txt
* Add Gideon's Resolve
* Add requires_groovy_code line to added cards
* Move another ability of Gate to the Afterlife to groovy
* Add Harvest Season
* Fix closure in Treasure Keeper
* Fix static type checking in Treasure Keeper
* Revert predicate declaration back
* Fix negative predicate closure in Treasure Keeper
* Fix static type checking in Treasure Keeper
* Add God Pharaoh's Gift
* Add requires_groovy_code to Harvest Season
* Use MagicCardList type for event ref
* Add missing comma
* Fix wrong return type
* Add groovy script for God Pharaoh's Gift
* Fix typo
* Fix int type in Harvest Season
* Add Imaginary Threats
* Add Nicol Bolas, the Deceiver
* Remove groovy ability from Nicol_Bolas__the_Deceiver.txt
* Remove redundant player ref from Nicol Bolas, the Deceiver's event
* Add Torment of Hailfire
* Add missing parenthesis
* Add Torment of Venom
* Remove Torment of Venom's effect from txt and add requires_groovy_code
line
* Remove extra ref argument from Torment of Venom's event
* Fix shuffle in Madcap Experiment
* Fix rest.remove(it) in Dubious Challenge
* Refine Madcap Experiment
* Fix Treasure Keeper
* Add exile action in God Pharaoh's Gift
* Use constructor instead of casting in Madcap Experiment
* Add missing choice argument in Torment of Venom
* Fix variable name
* Fix Edifice of Authority
* Fix Fateful Showdown
* Fix Treasure Keeper
* Fix targeting ruling in Tezzeret's Betrayal
* Rewrite Aetherstorm Roc
* Refine Aetherstorm Roc
* Fix Kari Zev's Expertise
* Fix Confiscation Coup
* Fix Liberating Combustion
* Fix typo
* Fix Chandra's Defeat
* Fix Imminent Doom
* Fix Wasp of the Bitter End
* Fix Field of Ruin
* Fix Expel from Orazca
* Remove extra $ in Chandra's Defeat
* Fix Commune with Dinosaurs
* Fix Aetherworks Marvel
* Fix Azcanta, the Sunken Ruin
* Fix Sunbird's Invocation
* Change Aetherworks Marvel back
* Add LookAction to Commune with Dinosaurs
* Put back https:// instead of http:// on new card scripts.
* Add support for new cards (credit goes to kelsioboy for them):
Aleatory
Blazing Salvo
Chaotic Strike
Confront the Unknown
Cyclopean Giant
Hamletback Goliath
Indulgent Tormentor
Intimidation Bolt
Learn from the Past
Measure of Wickedness
Neko-Te
Sylvan Primordial
Tenacious Dead
Thran Foundry
Waxing Moon
Wheel and Deal
Wolfcaller's Howl
* Add Deadeye Brawler
* Add Pride of Conquerors
* Add Secrets of the Golden City
* Add status to Radiant Destiny
* Add Wayward Swordtooth
* Add Snubhorn Sentry
* Add Dusk Charger
* Add Spire Winder
* Add Skymarcher Aspirant
* Add Resplendent Griffin
* Add groovy code for Pride of Conquerors
* Add Storm Fleet Swashbuckler
* Add Mausoleum Harpy
* Add Tendershoot Dryad
* Add Orazca Relic
* Add Slippery Scoundrel
* Add Arch of Orazca
* Add Timestream Navigator
* Fix addEvent in Pride of Conquerors
* Add ride to Orazca Relic
* Add put self on bottom of owner's library to MagicCostEvent
* Cast source to MagicPermanent
* Add groovy script for Secrets of the Golden City
* Add Twilight Prophet
* Add Kumena's Awakening
* Add Expel from Orazca
* Add Golden Demise
* Fix may choice in Expel from Orazca
* Fix missing parenthesis
* Add missing player local variable in Golden Demise
* Add Tilonalli's Summoner
* Fix playmod in Tilonalli's Summoner
* Add Vona's Hunger
* Change timing of Pride of Conquerors to Pump
* Add removal of exile trigger in Tilonalli's Summoner
* Convert the half number of permanents in Vona's Hunger to integer
* Add checking event.getChosen().length in Expel from Orazca
This avoids ArrayIndexOutOfBoundException in event.isYes()
Long Road Home
Otherworldly Journey
Pyre Zombie
Joven's Ferrets
Bounty Hunter
Cranial Archive
Feed the Pack
Harvest Season
Loxodon Peacekeeper
Strip Bare
Cellar Door
Rekindling Phoenix
* Fix GroovyCastException in Combustible Gearhulk
* Fix getGame() called for MagicPlayer.NONE in Rashmi, Eternities Crafter
* Move topCards.removeCard(it) in card list events before the action
* Fix shuffling in Tezzeret, Master of Metal
* Fix predicate
* Fix shuffle in Ajani, Valiant Protector
* Fix typo
* Fix static type checking
* Modify Rashmi's action
* Change getCardAtTop() to getCardsFromTop(1)
* Fix variable name
* Use constructor for MagicCardList instead of casting
* Add MagicAbility.Ascend
* Add MagicPlayerState.CitysBlessing
* Add Ascend spell ability to MagicSpellCardEvent
* Add import
* Get rid of type name
* Add the city's blessing to MagicCondition
* Use doAction in Ascend spell card event
* Add import
* Add checking if player already has city's blessing
* Add AscendTrigger.java
* Add import
* Add AscendTrigger to Ascend ability
* Move AscendTrigger into OtherEntersBattlefieldTrigger.java
Creating a new instance of AscendTrigger would hog memory.
* Move ascend spell ability to MagicRuleEventAction
* Revert "Move AscendTrigger into OtherEntersBattlefieldTrigger.java"
This reverts commit 72fdf16e7ad13343ffe2b52458a28b22c2dd970c.
* Use single AscendTrigger instance
* Remove AscendTrigger, add MagicStatic.Ascend
* Remove PutStateTriggerOnStackAction from Ascend
* Add import
* Use source.getController() for ascending player