Re: Bug Reports (snapshot builds)
NetBeans actually has an excellent integrated profiler. You can check out the info for it here. Run Forge through it, and it will give you a nice breakdown on how much time the program spends in each function.
High Quality Resources for Collectible Card Games and Home of the CCGHQ Team
https://www.slightlymagic.net/forum/
https://www.slightlymagic.net/forum/viewtopic.php?f=52&t=6333
Flash is still not functional.Agetian wrote:EDIT: r20215: As a temporary measure, I applied the change per the original Max's suggestion (added ButtonUtil.disableAll() to the update part of InputProxy - seems to do the job and not have any side-effects). Didn't do anything with the performance aspect of changes yet. Feel free to expand on it and modify in any way that you think may be beneficial.
Forge Version: SVN
Operating System: Windows XP 5.1 x86
Java Version: 1.6.0_21 Sun Microsystems Inc.
java.lang.StackOverflowError
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.split(Unknown Source)
at java.lang.String.split(Unknown Source)
at forge.util.FileSection.parseToMap(FileSection.java:69)
at forge.card.ability.AbilityFactory.getMapParams(AbilityFactory.java:316)
at forge.card.ability.AbilityFactory.getAbility(AbilityFactory.java:67)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:464)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:251)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:749)
at forge.card.ability.ai.ChangeZoneAi.knownOriginTriggerAI(ChangeZoneAi.java:1041)
at forge.card.ability.ai.ChangeZoneAi.doTriggerAINoCost(ChangeZoneAi.java:127)
at forge.card.ability.SpellAbilityAi.doTriggerNoCostWithSubs(SpellAbilityAi.java:35)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:30)
at forge.card.spellability.AbilitySub.doTrigger(AbilitySub.java:133)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:487)
at forge.card.spellability.SpellPermanent.checkETBEffects(SpellPermanent.java:395)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:758)
at forge.card.ability.ai.ChangeZoneAi$3.apply(ChangeZoneAi.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
I guess it is a different bug with Flash, but I can confirm that I have issues with Flash as well. Please assist if possible, no idea how to fix this one.swordshine wrote:Flash is still not functional.Agetian wrote:EDIT: r20215: As a temporary measure, I applied the change per the original Max's suggestion (added ButtonUtil.disableAll() to the update part of InputProxy - seems to do the job and not have any side-effects). Didn't do anything with the performance aspect of changes yet. Feel free to expand on it and modify in any way that you think may be beneficial.
Forge Version: 1.3.10-SNAPSHOT-r20203
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_01 Oracle Corporation
java.lang.NullPointerException
at forge.card.spellability.SpellAbility.setStackDescription(SpellAbility.java:941)
at forge.game.GameAction.destroyNoRegeneration(GameAction.java:1278)
at forge.game.GameAction.destroy(GameAction.java:1226)
at forge.game.GameAction.checkStateEffects(GameAction.java:1057)
at forge.game.zone.MagicStack.finishResolving(MagicStack.java:985)
at forge.card.ability.AbilityUtils.resolveSubAbilities(AbilityUtils.java:1017)
at forge.card.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1211)
at forge.card.ability.AbilityUtils.resolve(AbilityUtils.java:1008)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:841)
at forge.game.phase.PhaseHandler.passPriority(PhaseHandler.java:735)
at forge.game.player.PlayerController.passPriority(PlayerController.java:70)
at forge.game.ai.AiInputCommon.showMessage(AiInputCommon.java:110)
at forge.gui.InputProxy.setInput(InputProxy.java:58)
at forge.control.input.InputControl.setNewInput(InputControl.java:256)
at forge.game.GameInputUpdatesThread.run(GameInputUpdatesThread.java:29)
I attempted to play a Druidic Satchel and AI countered with Miscalculation. The buttons were disabled and I was unable to continue. Interestingly enough, when I went to the lot panel and then back to the stack, Miscalculation had disappeared from the stack, though the UI was still stuck.Agetian wrote:EDIT: r20215: As a temporary measure, I applied the change per the original Max's suggestion (added ButtonUtil.disableAll() to the update part of InputProxy - seems to do the job and not have any side-effects).
Yesh the issues are indeed gone!Max mtg wrote:Are the aforementioned problems gone with r20224 ?