Re: Card Development Questions
by SoulStorm
Reality Acid spits out an error if it leaves the battlefield due to the target it was enchanting being removed from the battlefield. In this specific case, the AI sacrificed the enchanted permanent (using Barter in Blood) while reality Acid was still on the battlefield.
- | Open
- Reality Acid - activatingPlayer not set before adding to stack.
java.lang.NullPointerException
at forge.card.abilityfactory.AbilityFactory.getDefinedPlayers(AbilityFactory.java:1912)
at forge.card.abilityfactory.AbilityFactorySacrifice.sacrificeResolve(AbilityFactorySacrifice.java:435)
at forge.card.abilityfactory.AbilityFactorySacrifice$1.resolve(AbilityFactorySacrifice.java:76)
at forge.card.abilityfactory.AbilityFactory.resolve(AbilityFactory.java:2483)
at forge.card.spellability.SpellAbilityRequirements.finishPaying(SpellAbilityRequirements.java:186)
at forge.card.cost.CostPayment.payCost(CostPayment.java:233)
at forge.card.spellability.SpellAbilityRequirements.startPaying(SpellAbilityRequirements.java:175)
at forge.card.spellability.SpellAbilityRequirements.needPayment(SpellAbilityRequirements.java:162)
at forge.card.spellability.SpellAbilityRequirements.fillRequirements(SpellAbilityRequirements.java:129)
at forge.GameAction.playSpellAbilityNoStack(GameAction.java:2822)
at forge.card.trigger.TriggerHandler$2.resolve(TriggerHandler.java:1028)
at forge.card.abilityfactory.AbilityFactory.resolve(AbilityFactory.java:2483)
at forge.MagicStack.resolveStack(MagicStack.java:908)
at forge.PhaseHandler.passPriority(PhaseHandler.java:846)
at forge.ComputerAIGeneral.stackResponse(ComputerAIGeneral.java:585)
at forge.ComputerAIGeneral.stackNotEmpty(ComputerAIGeneral.java:527)
at forge.ComputerAIInput.think(ComputerAIInput.java:95)
at forge.ComputerAIInput.showMessage(ComputerAIInput.java:71)
at forge.GuiInput.setInput(GuiInput.java:68)
at forge.GuiInput.update(GuiInput.java:54)
at java.util.Observable.notifyObservers(Unknown Source)
at java.util.Observable.notifyObservers(Unknown Source)
at forge.MyObservable.updateObservers(MyObservable.java:38)
at forge.gui.input.InputControl.resetInput(InputControl.java:144)
at forge.PhaseHandler.passPriority(PhaseHandler.java:835)
at forge.gui.input.InputPassPriority.selectButtonOK(InputPassPriority.java:72)
at forge.GuiInput.selectButtonOK(GuiInput.java:86)
at forge.control.match.ControlInput.btnOKActionPerformed(ControlInput.java:105)
at forge.control.match.ControlInput.access$0(ControlInput.java:104)
at forge.control.match.ControlInput$1.actionPerformed(ControlInput.java:52)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)