Fix some more NPE related to gauntlets

This commit is contained in:
TRT
2021-10-18 15:26:09 +02:00
parent 501d5501db
commit 5b72d1f682
5 changed files with 27 additions and 27 deletions

View File

@@ -197,13 +197,7 @@ public class DamageDealEffect extends DamageBaseEffect {
return; return;
} }
CardCollection assigneeCards = new CardCollection(); CardCollection assigneeCards = new CardCollection(Iterables.filter(tgts, Card.class));
// Do we have a way of doing this in a better fashion?
for (GameObject obj : tgts) {
if (obj instanceof Card) {
assigneeCards.add((Card) obj);
}
}
Player assigningPlayer = players.get(0); Player assigningPlayer = players.get(0);
Map<Card, Integer> map = assigningPlayer.getController().assignCombatDamage(sourceLKI, assigneeCards, dmg, null, true); Map<Card, Integer> map = assigningPlayer.getController().assignCombatDamage(sourceLKI, assigneeCards, dmg, null, true);

View File

@@ -122,8 +122,8 @@ public enum CSubmenuGauntletBuild implements ICDoc {
} }
private void addDeck() { private void addDeck() {
final Deck deckToAdd = view.getLstLeft().getPlayer().getDeck(); final Deck deckToAdd = view.getLstLeft().getPlayer() != null ? view.getLstLeft().getPlayer().getDeck() : null;
if ( null == deckToAdd ) { if (null == deckToAdd) {
return; return;
} }
workingDecks.add(deckToAdd); workingDecks.add(deckToAdd);
@@ -145,7 +145,7 @@ public enum CSubmenuGauntletBuild implements ICDoc {
private void deckUp() { private void deckUp() {
final int oldIndex = view.getLstRight().getSelectedIndex(); final int oldIndex = view.getLstRight().getSelectedIndex();
if (oldIndex == 0) { return; } if (oldIndex <= 0) { return; }
final Deck movingDeck = workingDecks.remove(oldIndex); final Deck movingDeck = workingDecks.remove(oldIndex);
workingDecks.add(oldIndex - 1, movingDeck); workingDecks.add(oldIndex - 1, movingDeck);

View File

@@ -144,7 +144,7 @@ public class DeckgenUtil {
* @return * @return
*/ */
public static Deck buildCardGenDeck(PaperCard card, PaperCard secondKeycard, GameFormat format, boolean isForAI){ public static Deck buildCardGenDeck(PaperCard card, PaperCard secondKeycard, GameFormat format, boolean isForAI){
return buildLDACardGenDeck(card, format, isForAI); return buildLDACardGenDeck(card, format, isForAI);
} }
/** /**
@@ -425,6 +425,8 @@ public class DeckgenUtil {
/** @return {@link forge.deck.Deck} */ /** @return {@link forge.deck.Deck} */
public static Deck getRandomCustomDeck() { public static Deck getRandomCustomDeck() {
final IStorage<Deck> allDecks = FModel.getDecks().getConstructed(); final IStorage<Deck> allDecks = FModel.getDecks().getConstructed();
// in case user has not created any yet
if (allDecks.size() == 0) { return null; }
final int rand = (int) (Math.floor(MyRandom.getRandom().nextDouble() * allDecks.size())); final int rand = (int) (Math.floor(MyRandom.getRandom().nextDouble() * allDecks.size()));
final String name = allDecks.getItemNames().toArray(new String[0])[rand]; final String name = allDecks.getItemNames().toArray(new String[0])[rand];
return allDecks.get(name); return allDecks.get(name);

View File

@@ -37,30 +37,32 @@ public class GauntletUtil {
deck = DeckgenUtil.getRandomColorDeck(FModel.getFormats().getStandard().getFilterPrinted(),true); deck = DeckgenUtil.getRandomColorDeck(FModel.getFormats().getStandard().getFilterPrinted(),true);
break; break;
case STANDARD_CARDGEN_DECK: case STANDARD_CARDGEN_DECK:
deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getStandard(),true); deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getStandard(),true);
break; break;
case PIONEER_CARDGEN_DECK: case PIONEER_CARDGEN_DECK:
deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getPioneer(),true); deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getPioneer(),true);
break; break;
case HISTORIC_CARDGEN_DECK: case HISTORIC_CARDGEN_DECK:
deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getHistoric(),true); deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getHistoric(),true);
break; break;
case MODERN_CARDGEN_DECK: case MODERN_CARDGEN_DECK:
deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getModern(),true); deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getModern(),true);
break; break;
case LEGACY_CARDGEN_DECK: case LEGACY_CARDGEN_DECK:
deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().get("Legacy"),true); deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().get("Legacy"),true);
break; break;
case VINTAGE_CARDGEN_DECK: case VINTAGE_CARDGEN_DECK:
deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().get("Vintage"),true); deck = DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().get("Vintage"),true);
break; break;
case MODERN_COLOR_DECK: case MODERN_COLOR_DECK:
deck = DeckgenUtil.getRandomColorDeck(FModel.getFormats().getModern().getFilterPrinted(),true); deck = DeckgenUtil.getRandomColorDeck(FModel.getFormats().getModern().getFilterPrinted(),true);
break; break;
case CUSTOM_DECK: case CUSTOM_DECK:
deck = DeckgenUtil.getRandomCustomDeck(); deck = DeckgenUtil.getRandomCustomDeck();
eventNames.add(deck.getName()); if (deck != null) { // fall back to precon if none available
break; eventNames.add(deck.getName());
break;
}
case PRECONSTRUCTED_DECK: case PRECONSTRUCTED_DECK:
deck = DeckgenUtil.getRandomPreconDeck(); deck = DeckgenUtil.getRandomPreconDeck();
eventNames.add(deck.getName()); eventNames.add(deck.getName());

View File

@@ -56,8 +56,10 @@ public class TournamentUtil {
break; break;
case CUSTOM_DECK: case CUSTOM_DECK:
deck = DeckgenUtil.getRandomCustomDeck(); deck = DeckgenUtil.getRandomCustomDeck();
eventNames.add(deck.getName()); if (deck != null) { // fall back to precon if none available
break; eventNames.add(deck.getName());
break;
}
case PRECONSTRUCTED_DECK: case PRECONSTRUCTED_DECK:
deck = DeckgenUtil.getRandomPreconDeck(); deck = DeckgenUtil.getRandomPreconDeck();
eventNames.add(deck.getName()); eventNames.add(deck.getName());