Error with Shifting Woodland + Aftermath Analyst + Six
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 940
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 160
Description
[[Shifting Woodland]] copying [[Aftermath Analyst]] in the graveyard works fine, it sacrifices itself to activate the ability and put the ability on the stack, then when the ability resolves Woodland comes back into play along with the other lands in the graveyard.
But if you have [[Six]] in play (which has the ability to give Retrace to all nonland permanents in graveyard), it gives the below error immediately when you activate the ability, so the ability does not even go on the stack.
Maybe it could be because it tries to give Retrace to a "nonland" permanent (the Woodland), which might count as a nonland while activating the ability, but it's actually a land.
I'm looking at the code for the three cards, not sure if I'm able to figure this one out though, would appreciate help.
Error type: SERVER - game error
Client version: 1.4.56-V3 (build: runtime)
Java version: 1.8.0_442
Default charset: UTF-8
Game error occurred:
java.lang.NullPointerException
Server version: 1.4.56-V3 (build: runtime)
Stack trace:
mage.abilities.AbilityImpl.(AbilityImpl.java:108)
mage.abilities.ActivatedAbilityImpl.(ActivatedAbilityImpl.java:52)
mage.abilities.SpellAbility.(SpellAbility.java:53)
mage.abilities.keyword.RetraceAbility.(RetraceAbility.java:18)
mage.abilities.effects.common.continuous.GainRetraceYourGraveyardEffect.apply(GainRetraceYourGraveyardEffect.java:54)
mage.abilities.effects.ContinuousEffectImpl.apply(ContinuousEffectImpl.java:118)
mage.abilities.decorator.ConditionalContinuousEffect.apply(ConditionalContinuousEffect.java:100)
mage.abilities.effects.ContinuousEffects.apply(ContinuousEffects.java:1064)
mage.game.GameState.applyEffects(GameState.java:676)
mage.game.GameImpl.applyEffects(GameImpl.java:1942)
mage.game.GameImpl.playPriority(GameImpl.java:1722)
mage.game.turn.Step.priority(Step.java:73)
mage.game.turn.Phase.playStep(Phase.java:205)
mage.game.turn.Phase.play(Phase.java:91)
mage.game.turn.Turn.play(Turn.java:129)
mage.game.GameImpl.playTurn(GameImpl.java:1157)
mage.game.GameImpl.play(GameImpl.java:1064)
mage.game.GameImpl.start(GameImpl.java:1040)
mage.server.game.GameWorker.call(GameWorker.java:35)
mage.server.game.GameWorker.call(GameWorker.java:16)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:750)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with mage/abilities/effects/common/continuous/GainRetraceYourGraveyardEffect.java at line 54 and follow the stack into mage/abilities/keyword/RetraceAbility.java and the constructors shown. Reproduce the Shifting Woodland, Aftermath Analyst, and Six interaction, then verify the activation no longer throws a NullPointerException and the ability reaches the stack.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100