fix: pass gameState to _canAfford in MacroActionMapper

Static method was referencing bare gameState which is always null.
Now accepts gameState as parameter, and all 5 callers pass it through.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
rgriffithandClaude Opus 4.6 committed 2026-04-04 17:02:05 -04:00
1 parent b7f9c119cb
commit 30c3ab5a89
1 file changed
+6 -6
+6 -6
View File
@@ -707,7 +707,7 @@ class MacroActionMapper {
if (castable.length === 0) return false;
castable.sort((a, b) => (MacroActionMapper._cmc(b) - MacroActionMapper._cmc(a)));
for (const card of castable) {
if (MacroActionMapper._canAfford(playerIdx, card)) {
if (MacroActionMapper._canAfford(playerIdx, card, gameState)) {
const idx = hand.indexOf(card);
if (idx !== -1) {
if (!card.imageUrl) card.imageUrl = generateAiCardSVG(card);
@@ -728,7 +728,7 @@ class MacroActionMapper {
});
for (const card of creatures) {
if (MacroActionMapper._canAfford(playerIdx, card)) {
if (MacroActionMapper._canAfford(playerIdx, card, gameState)) {
const idx = hand.indexOf(card);
if (idx !== -1) {
if (!card.imageUrl) card.imageUrl = generateAiCardSVG(card);
@@ -752,7 +752,7 @@ class MacroActionMapper {
if (removal.length === 0) return false;
for (const card of removal) {
if (MacroActionMapper._canAfford(playerIdx, card)) {
if (MacroActionMapper._canAfford(playerIdx, card, gameState)) {
const idx = hand.indexOf(card);
if (idx !== -1) {
if (!card.imageUrl) card.imageUrl = generateAiCardSVG(card);
@@ -781,7 +781,7 @@ class MacroActionMapper {
);
for (const card of drawSpells) {
if (MacroActionMapper._canAfford(playerIdx, card)) {
if (MacroActionMapper._canAfford(playerIdx, card, gameState)) {
const idx = hand.indexOf(card);
if (idx !== -1) {
if (!card.imageUrl) card.imageUrl = generateAiCardSVG(card);
@@ -826,7 +826,7 @@ class MacroActionMapper {
);
for (const card of rampSpells) {
if (MacroActionMapper._canAfford(playerIdx, card)) {
if (MacroActionMapper._canAfford(playerIdx, card, gameState)) {
const idx = hand.indexOf(card);
if (idx !== -1) {
if (!card.imageUrl) card.imageUrl = generateAiCardSVG(card);
@@ -884,7 +884,7 @@ class MacroActionMapper {
return 0;
}
static _canAfford(playerIdx, card) {
static _canAfford(playerIdx, card, gameState) {
if (!gameState) return false;
const available = typeof aiCountUntappedLands === 'function'
? aiCountUntappedLands(playerIdx)