mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Fixes to ensure deckchooser AI status is set correctly before decks are generated and that the list of card-based decks is updated to show only AI playable cards as required.
This commit is contained in:
@@ -530,6 +530,10 @@ public class FDeckChooser extends FScreen {
|
||||
}
|
||||
}
|
||||
|
||||
public void refreshDeckListForAI(){
|
||||
refreshDecksList(selectedDeckType,true,null);
|
||||
}
|
||||
|
||||
private void refreshDecksList(DeckType deckType, boolean forceRefresh, FEvent e) {
|
||||
if (selectedDeckType == deckType && !forceRefresh) { return; }
|
||||
selectedDeckType = deckType;
|
||||
|
||||
@@ -2,6 +2,7 @@ package forge.screens.constructed;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import forge.deck.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
@@ -14,10 +15,6 @@ import forge.Graphics;
|
||||
import forge.ai.AIOption;
|
||||
import forge.assets.FSkinColor;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.deck.CardPool;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckSection;
|
||||
import forge.deck.DeckType;
|
||||
import forge.game.GameType;
|
||||
import forge.interfaces.ILobbyView;
|
||||
import forge.interfaces.IPlayerChangeListener;
|
||||
@@ -410,6 +407,43 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
return playerPanels.get(playernum).isArchenemy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void update(final int slot, final LobbySlotType type) {
|
||||
final FDeckChooser deckChooser = playerPanels.get(slot).getDeckChooser();
|
||||
DeckType selectedDeckType = deckChooser.getSelectedDeckType();
|
||||
switch (selectedDeckType){
|
||||
case STANDARD_CARDGEN_DECK:
|
||||
case MODERN_CARDGEN_DECK:
|
||||
case COLOR_DECK:
|
||||
case STANDARD_COLOR_DECK:
|
||||
case MODERN_COLOR_DECK:
|
||||
deckChooser.refreshDeckListForAI();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
final FDeckChooser commanderDeckChooser = playerPanels.get(slot).getCommanderDeckChooser();
|
||||
selectedDeckType = commanderDeckChooser.getSelectedDeckType();
|
||||
switch (selectedDeckType){
|
||||
case RANDOM_CARDGEN_COMMANDER_DECK:
|
||||
case RANDOM_COMMANDER_DECK:
|
||||
commanderDeckChooser.refreshDeckListForAI();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
final FDeckChooser tinyLeaderDeckChooser = playerPanels.get(slot).getTinyLeadersDeckChooser();
|
||||
selectedDeckType = tinyLeaderDeckChooser.getSelectedDeckType();
|
||||
switch (selectedDeckType){
|
||||
case RANDOM_CARDGEN_COMMANDER_DECK:
|
||||
case RANDOM_COMMANDER_DECK:
|
||||
tinyLeaderDeckChooser.refreshDeckListForAI();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(final boolean fullUpdate) {
|
||||
int playerCount = lobby.getNumberOfSlots();
|
||||
|
||||
@@ -339,6 +339,7 @@ public class PlayerPanel extends FContainer {
|
||||
|
||||
LobbySlot slot = screen.getLobby().getSlot(index);
|
||||
slot.setType(type);
|
||||
screen.update(index,type);
|
||||
|
||||
//update may edit in-case it changed as a result of the AI change
|
||||
setMayEdit(screen.getLobby().mayEdit(index));
|
||||
|
||||
Reference in New Issue
Block a user