diff --git a/forge-ai/src/main/java/forge/ai/ability/DayTimeAi.java b/forge-ai/src/main/java/forge/ai/ability/DayTimeAi.java index 4a3bab62233..bf37bb99e03 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DayTimeAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DayTimeAi.java @@ -16,10 +16,11 @@ public class DayTimeAi extends SpellAbilityAi { // If it involves a cost that may put us at a disadvantage, better activate before own turn if possible if (!SpellAbilityAi.isSorcerySpeed(sa)) { return ph.is(PhaseType.END_OF_TURN) && ph.getNextTurn() == aiPlayer; + } else { + return ph.is(PhaseType.MAIN2, aiPlayer); // Give other things a chance to be cast (e.g. Celestus) } } - // TODO: more logic for when it may not be desirable to do this. Special logic for Celestus? return true; } diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CPrompt.java b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CPrompt.java index 039563af77d..617371c5f8c 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CPrompt.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CPrompt.java @@ -158,7 +158,7 @@ public class CPrompt implements ICDoc { } public void setMessage(final String s0) { - String header = FControl.instance.getCurrentScreen().getDaytime() != null ? "[" + Localizer.getInstance().getMessage("lbl"+FControl.instance.getCurrentScreen().getDaytime()) + "]\n\n" : "[---]\n\n"; + String header = FControl.instance.getCurrentScreen().getDaytime() != null ? "[" + Localizer.getInstance().getMessage("lbl"+FControl.instance.getCurrentScreen().getDaytime()) + "]\n\n" : ""; header += s0; view.getTarMessage().setText(FSkin.encodeSymbols(header, false)); view.setCardView(null); diff --git a/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java b/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java index 020f9990012..6d94c95952e 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java +++ b/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java @@ -68,7 +68,10 @@ public class FDeckImportDialog extends FDialog { callback = callback0; controller = new DeckImportController(dateTimeCheck, monthDropdown, yearDropdown, replacingDeck); - txtInput.setText(Forge.getClipboard().getContents()); //just pull import directly off the clipboard + String contents = Forge.getClipboard().getContents(); + if (contents == null) + contents = ""; //prevent NPE + txtInput.setText(contents); if (FDeckEditor.editorTypesAllowsReplacement(editorType)) { GameType gameType = GameType.valueOf(editorType.name()); diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index d506e36fccf..9b8edea6964 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -1036,16 +1036,20 @@ public class ImageView extends ItemView { //labelname g.drawText(item.getName(), GROUP_HEADER_FONT, Color.WHITE, x + PADDING, y + PADDING*2, w - 2 * PADDING, h - 2 * PADDING, true, Align.center, false); } else { - if (!dp.isGeneratedDeck()){ - //If deck has Commander, use it as cardArt reference - PaperCard paperCard = dp.getDeck().getCommanders().isEmpty() ? dp.getHighestCMCCard() : dp.getDeck().getCommanders().get(0); - FImageComplex cardArt = CardRenderer.getCardArt(paperCard); - //draw the deckbox - if (cardArt == null){ - //draw generic box if null or still loading - g.drawImage(FSkin.getDeckbox().get(2), FSkin.getDeckbox().get(2), x, y-(h*0.25f), w, h, Color.GREEN, selected); + if (!dp.isGeneratedDeck()) { + if (dp.getDeck().isEmpty()) { + g.drawImage(FSkin.getDeckbox().get(2), FSkin.getDeckbox().get(2), x, y-(h*0.25f), w, h, Color.RED, selected); } else { - g.drawDeckBox(cardArt, scale, FSkin.getDeckbox().get(1), FSkin.getDeckbox().get(2), x, y, w, h, Color.GREEN, selected); + //If deck has Commander, use it as cardArt reference + PaperCard paperCard = dp.getDeck().getCommanders().isEmpty() ? dp.getHighestCMCCard() : dp.getDeck().getCommanders().get(0); + FImageComplex cardArt = CardRenderer.getCardArt(paperCard); + //draw the deckbox + if (cardArt == null){ + //draw generic box if null or still loading + g.drawImage(FSkin.getDeckbox().get(2), FSkin.getDeckbox().get(2), x, y-(h*0.25f), w, h, Color.GREEN, selected); + } else { + g.drawDeckBox(cardArt, scale, FSkin.getDeckbox().get(1), FSkin.getDeckbox().get(2), x, y, w, h, Color.GREEN, selected); + } } } else { //generic box @@ -1070,10 +1074,14 @@ public class ImageView extends ItemView { //vertical mana icons CardFaceSymbols.drawColorSet(g, deckColor, x +(w-symbolSize), y+(h/8), symbolSize, true); if(!dp.isGeneratedDeck()) { - if (Forge.hdbuttons) - g.drawImage(DeckPreferences.getPrefs(dp).getStarCount() > 0 ? FSkinImage.HDSTAR_FILLED : FSkinImage.HDSTAR_OUTLINE, x, y, symbolSize, symbolSize); - else - g.drawImage(DeckPreferences.getPrefs(dp).getStarCount() > 0 ? FSkinImage.STAR_FILLED : FSkinImage.STAR_OUTLINE, x, y, symbolSize, symbolSize); + if (dp.getDeck().isEmpty()) { + g.drawImage(Forge.hdbuttons ? FSkinImage.HDYIELD : FSkinImage.WARNING, x, y, symbolSize, symbolSize); + } else { + if (Forge.hdbuttons) + g.drawImage(DeckPreferences.getPrefs(dp).getStarCount() > 0 ? FSkinImage.HDSTAR_FILLED : FSkinImage.HDSTAR_OUTLINE, x, y, symbolSize, symbolSize); + else + g.drawImage(DeckPreferences.getPrefs(dp).getStarCount() > 0 ? FSkinImage.STAR_FILLED : FSkinImage.STAR_OUTLINE, x, y, symbolSize, symbolSize); + } } } String deckname = TextUtil.fastReplace(item.getName(),"] #", "]\n#");