magefree / magefree/mage

Game Error - Ur Dragon and Hellkite Courser

Open
#9,323 1 comment 0 reactions 0 assignees View on GitHub
AI bug refactoring
Dominant language
Java
Stars
2.4k
Forks
940
Avg merge
2d 12h
Merged PRs (30d)
160

Description

Not sure if this is a known issue. But when the AI plays as Ur Dragon and tries to play Hellkite Courser through the Ur Dragon's attacking effect it triggers a game error. I have copy and pasted it here.

Game exception occurred: java.lang.IllegalStateException: Target wasn't handled in computer's choose method: mage.target.TargetCard
Server version: 1.4.51-V4-beta7 (build: 2022-07-09 15:21)
mage.player.ai.ComputerPlayer.choose(ComputerPlayer.java:499)
mage.player.ai.ComputerPlayer.choose(ComputerPlayer.java:126)
mage.cards.h.HellkiteCourserEffect.apply(HellkiteCourser.java:87)
mage.abilities.AbilityImpl.resolveMode(AbilityImpl.java:201)
mage.abilities.AbilityImpl.resolve(AbilityImpl.java:185)
mage.abilities.TriggeredAbilityImpl.resolve(TriggeredAbilityImpl.java:149)
mage.game.stack.StackAbility.resolve(StackAbility.java:89)
mage.game.GameImpl.resolve(GameImpl.java:1618)
mage.game.GameImpl.playPriority(GameImpl.java:1544)
mage.game.turn.Step.priority(Step.java:61)
mage.game.turn.Phase.playStep(Phase.java:184)
mage.game.turn.Phase.play(Phase.java:89)
mage.game.turn.Turn.play(Turn.java:132)
mage.game.GameImpl.playTurn(GameImpl.java:1042)
mage.game.GameImpl.play(GameImpl.java:952)
mage.game.GameImpl.start(GameImpl.java:928)
mage.server.game.GameWorker.call(GameWorker.java:34)
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:748)

The error is then rolled back and if Courser is the only dragon in hand it repeats this error until I stop the game.

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the Ur Dragon attack trigger with Hellkite Courser, then start with mage/cards/h/HellkiteCourser.java:87 and mage/player/ai/ComputerPlayer.java:499 from the stack trace. Trace how the AI handles the TargetCard choice and verify that Courser resolves without the exception or repeated rollback.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
ai, game-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.