mage: getPlayable does not work correctly with all spell reduction abilities (e.g. Mystical Dispute) or with targeting conditions for the cost reduction
I was unable to cast a Mystical Dispute on my opponent’s Mystical Dispute targeting my blue spell with one mana open for it. My opponent was at 3 mana and paid 1 to cast his.
Check and fix:
- AbilitiesCostReductionControllerEffect.java
- AffinityEffect.java
- BantPlane.java
- CommanderCostModification.java
- ConditionalCostModificationEffect.java
- CostModificationSourceEffect.java
- EscalateAbility.java
- FeedingGroundsPlane.java
- !!! OfferingAbility.java
- SourceCostReductionForEachCardInGraveyardEffect.java (removed)
- SpellCostReductionSourceEffect.java
- SpellCostReductionForEachSourceEffect
- SpellCostReductionSourceForOpponentsEffect.java (removed)
- SpellsCostIncreasementAllEffect.java (removed)
- SpellsCostIncreasingAllEffect.java
- DampingSphereIncreasementAllEffect
- SpellsCostIncreasementControllerEffect.java (removed)
- SpellsCostReductionAllEffect.java
- SpellsCostReductionAllOfChosenSubtypeEffect
- SpellsCostReductionAllOfChosenCardTypeEffect
- SpellsCostReductionControllerEffect.java
- CentaurOmenreaderSpellsCostReductionEffect
- StriveAbility.java
- TurriIslandPlane.java
- SpellsCostModificationThatTargetSourceEffect.java
Use checkplayable state:
- search by
public void adjustCosts(
Refactor to standard method, search by cast that target
(fix example):
- AccursedWitch.java
- AncientStoneIdol.java
- AngelOfJubilation.java
- AnimarSoulOfElements.java
- ArcaneMelee.java
- AuraOfSilence.java
- AvatarOfFury.java
- AvatarOfHope.java
- xxx BattlefieldThaumaturge.java
- BiomancersFamiliar.java
- BlasphemousAct.java
- BonePicker.java
- BorealElemental.java
- BrineGiant.java
- BrutalSuppression.java
- CallapheBelovedOfTheSea.java
- CatalystStone.java
- ChandrasIncinerator.java
- CloudKey.java
- CouncilOfTheAbsolute.java
- DefenseGrid.java
- DovinHandOfControl.java
- Draco.java
- Drought.java
- EchoBaseCommando.java
- EidolonOfObstruction.java
- ElderwoodScion.java
- ElspethConquersDeath.java
- EmbalmersTools.java
- Embercleave.java
- EmrakulThePromisedEnd.java
- EmryLurkerOfTheLoch.java
- FerventChampion.java
- Fluctuator.java
- GateColossus.java
- GaviNestWarden.java
- GearseekerSerpent.java
- GhaltaPrimalHunger.java
- Gloom.java
- Glowrider.java
- GodPharaohsStatue.java
- GrandArbiterAugustinIV.java
- HardenedBerserker.java
- Heartstone.java
- HeraldOfWar.java
- HollowOne.java
- HumOfTheRadix.java
- IcefallRegent.java
- InfectiousCurse.java
- JubilantSkybonder.java
- KaerveksTorch.java
- KaradorGhostChieftain.java
- KasminaEnigmaticMentor.java
- KopalaWardenOfWaves.java
- LiciaSanguineTribune.java
- LocketOfYesterdays.java
- LodestoneGolem.java
- LoreseekersStone.java
- MemoryCrystal.java
- MetalworkColossus.java
- MizzixOfTheIzmagnus.java
- MobilizedDistrict.java
- MonasterySiege.java
- MythUnbound.java
- NemesisOfMortals.java
- NewPerspectives.java
- OppressiveRays.java
- PowerArtifact.java
- PrimevalProtector.java
- Pteramander.java
- PursuedWhale.java
- RakdosLordOfRiots.java
- RisenExecutioner.java
- SaheeliTheGifted.java
- SealOfTheGuildpact.java
- SemblanceAnvil.java
- SenatorLottDod.java
- SpellwildOuphe.java
- SphinxOfNewPrahv.java
- StoneIdolTrap.java
- Stratadon.java
- SuppressionField.java
- SyrElenoraTheDiscerning.java
- TerrorOfThePeaks.java
- ThaliaGuardianOfThraben.java
- TheCauldronOfEternity.java
- TheCircleOfLoyalty.java
- TheGreatHenge.java
- TitheTaker.java
- TorgaarFamineIncarnate.java
- TrainingGrounds.java
- Trinisphere.java
- ValiantChangeling.java
- VolcanicSalvo.java
- VrynWingmare.java
- Warbringer.java
- ZirdaTheDawnwaker.java
About this issue
- Original URL
- State: open
- Created 4 years ago
- Comments: 15 (7 by maintainers)
Links to this issue
Commits related to this issue
- * Fixed wrong zone for cost reduction ability (#6684). — committed to magefree/mage by LevelX2 4 years ago
- Test helper for #6684 (uncomment and run checkMissingCardData) — committed to magefree/mage by JayDi85 4 years ago
- * Cost reduction effects - fixed that some cards with cost reduction can't be played (example: Price of Fame, see #6685, #6684); — committed to magefree/mage by JayDi85 4 years ago
- Cost reduction effects - refactor, removed redundant custom effects, added card hints; — committed to magefree/mage by JayDi85 4 years ago
- Refactor some cost modification effects — committed to magefree/mage by JayDi85 4 years ago
- Cost increasing effects - refactor, removed redundant custom effects (related to #6684 and #6698); — committed to magefree/mage by JayDi85 4 years ago
- Cost increasing effects - refactor, removed redundant custom effects (related to #6684 and #6698); — committed to magefree/mage by JayDi85 4 years ago
- * Transform abilities - fixed duplicated triggered abilities from transformed permanents; * Accursed Witch // Infectious Curse - fixed wrong cost modification effect (#6684); — committed to magefree/mage by JayDi85 4 years ago
- Fixed not working cost modification effects in get playable calcs from some cards (#6684): * Kasmina, Enigmatic Mentor * Kopala, Warden of Waves * Monastery Siege * Senator Lott Dod * Terror of the Pe... — committed to magefree/mage by JayDi85 4 years ago
In that case, let’s create a master issue (it could be this one) for this and start adding every card that gets reported to it, while closing all the individual card issues as duplicates. #6680, #6685, #6696, and the reports in discord that you can’t cast spells with an untapped Chrome Mox in play were probably all issues revealed by this.
That sounds right to me. There are a lot of ways to cast a card that might be hard to calculate. For example, if you want to use Selvala, Explorer Returned without worrying about opponents getting priority due to effects triggering off the card draw, it is the strategically correct play to put a sometimes as-yet unaffordable spell on the stack. A player shouldn’t be hard locked out of that option.