Skip to content

Avoid AI wheel effects into draw punishers#10945

Open
Rauglothgor wants to merge 1 commit into
Card-Forge:masterfrom
Rauglothgor:ai-draw-punisher-wheel-avoidance
Open

Avoid AI wheel effects into draw punishers#10945
Rauglothgor wants to merge 1 commit into
Card-Forge:masterfrom
Rauglothgor:ai-draw-punisher-wheel-avoidance

Conversation

@Rauglothgor

Copy link
Copy Markdown
Contributor

Summary

This is a narrow AI heuristic for voluntary wheel-style mass draw effects when an opponent already controls an active draw-punisher or draw-conversion permanent.

The change is intentionally scoped to wheel execution paths instead of the global playability chain:

  • DiscardAi for discard-then-draw wheels such as Wheel of Fortune style effects
  • ChangeZoneAllAi for Timetwister-style shuffle/draw effects
  • a shared ComputerUtilCard helper that estimates large self-draws and checks active battlefield draw-punisher triggers

It avoids the broader simulator/caching direction from #10559 and the high-level AiController hook concern discussed on #10576.

Behavior

The AI now declines large voluntary mass-draw lines when an opponent's battlefield has an active trigger that materially punishes or converts the AI drawing cards, such as damage/life-loss draw punishers or token conversion.

The AI still allows the line when the draw is small, no active opponent draw-punisher exists, or the AI's own draw-punisher damage appears immediately lethal.

Validation

Passed locally with temporary WSL Maven/JDK tooling:

mvn -pl forge-ai -am -DskipTests compile

Observed result: BUILD SUCCESS, with 0 checkstyle violations.

Notes

No tests are included here. This is meant to stay as a small upstream review slice after recent maintainer feedback about avoiding test-only wiring for AI heuristics unless the test catches a meaningful integration regression.

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

Successfully merging this pull request may close these issues.

1 participant