1) As I just mentioned in the 1.3.10 thread, the
Man-o'-War bug still persists. I.e., the AI drops a
Man-o'-War -> infinite loop, crash. Here's a sample:
- StackOverflowError | Open
- Code: Select all
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.range(Unknown Source)
at java.util.regex.Pattern.clazz(Unknown Source)
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.game.zone.ZoneType.listValueOf(ZoneType.java:63)
at forge.Card.canBeTargetedBy(Card.java:8899)
at forge.card.spellability.SpellAbility.canTarget(SpellAbility.java:1327)
at forge.CardPredicates$7.apply(CardPredicates.java:99)
at forge.CardPredicates$7.apply(CardPredicates.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.CardLists.getTargetableCards(CardLists.java:220)
at forge.card.ability.ai.ChangeZoneAi.isPreferredTarget(ChangeZoneAi.java:700)
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
... (truncated)
2) The
Winter Orb seems to work now, unlike before, which is good. However, the somewhat similar
Smoke unfortunately doesn't. You are not prompted to untap that single creature and, consequently, cannot untap any creatures.