Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

server log error: getSpellOrLKIStack got non-spell id in getSpellKickedCountStrict #12527

Open
xenohedron opened this issue Jun 26, 2024 · 2 comments

Comments

@xenohedron
Copy link
Contributor

ERROR 2024-06-20 19:59:12,308 getSpellOrLKIStack got non-spell id mage.game.stack.Stac
kAbility correlating to non-spell object stack ability (Equip {1} <i>({1}: Attach to t
arget creature you control. Equip only as a sorcery.)</i>). =>[GAME a895c7d8-9902-4570
-b9ce-badb19324edf] GameImpl.getSpellOrLKIStack 
java.lang.Throwable
        at mage.game.GameImpl.getSpellOrLKIStack(GameImpl.java:718)
        at mage.abilities.keyword.KickerAbility.getSpellKickedCountStrict(KickerAbilit
y.java:283)
        at mage.abilities.keyword.KickerAbility.getSpellKickedCount(KickerAbility.java
:276)
        at mage.abilities.condition.common.KickedCondition.apply(KickedCondition.java:
28)
        at mage.ConditionalMana.apply(ConditionalMana.java:83)
        at mage.players.PlayerImpl.canPayMinimumManaCost(PlayerImpl.java:3708)
        at mage.players.PlayerImpl.canPlay(PlayerImpl.java:3634)
        at mage.players.PlayerImpl.findActivatedAbilityFromPlayable(PlayerImpl.java:39
22)
        at mage.players.PlayerImpl.getPlayableFromObjectSingle(PlayerImpl.java:4078)
        at mage.players.PlayerImpl.getPlayableFromObjectAll(PlayerImpl.java:3985)
        at mage.players.PlayerImpl.getPlayable(PlayerImpl.java:4252)
        at mage.players.PlayerImpl.getPlayableObjects(PlayerImpl.java:4314)
        at mage.server.game.GameSessionPlayer.prepareGameView(GameSessionPlayer.java:2
16)
        at mage.server.game.GameSessionPlayer.getGameView(GameSessionPlayer.java:200)
        at mage.server.game.GameSessionWatcher.lambda$update$0(GameSessionWatcher.java:54)
        at java.util.Optional.ifPresent(Optional.java:159)
        at mage.server.game.GameSessionWatcher.update(GameSessionWatcher.java:54)
        at mage.server.game.GameController.updateGame(GameController.java:805)
        at mage.server.game.GameController.lambda$init$3aa0d15c$1(GameController.java:122)
        at mage.game.events.EventDispatcher.fireEvent(EventDispatcher.java:28)
        at mage.game.events.TableEventSource.fireTableEvent(TableEventSource.java:44)
        at mage.game.GameImpl.fireUpdatePlayersEvent(GameImpl.java:3127)
        at mage.game.GameImpl.playPriority(GameImpl.java:1693)
        at mage.game.turn.Step.priority(Step.java:67)

@ssk97
Copy link
Contributor

ssk97 commented Jun 26, 2024

Looks like I caused this problem, when I added support for [[Wastescape Battlemage]]'s kicker abilities. Not sure what the best way to solve it would be, the easiest solution would be to just return null instead of throwing an error. An alternative is creating a separate KickedCondition for just Wastescape Battlemage (presumably inside of the card's implementation)

Copy link

Wastescape Battlemage - (Gatherer) (Scryfall) (EDHREC)

{1}{C}
Creature — Eldrazi Wizard
2/2
Kicker {G} and/or {1}{U}
When you cast this spell, if it was kicked with its {G} kicker, exile target artifact or enchantment an opponent controls.
When you cast this spell, if it was kicked with its {1}{U} kicker, return target creature an opponent controls to its owner's hand.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants