mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
Add Ask AI button
This commit is contained in:
@@ -52,6 +52,7 @@ public final class CDev implements ICDoc {
|
||||
view.getLblRemoveFromGame().addMouseListener(madRemoveFromGame);
|
||||
view.getLblRiggedRoll().addMouseListener(madRiggedRoll);
|
||||
view.getLblWalkTo().addMouseListener(madWalkToPlane);
|
||||
view.getLblAskAI().addMouseListener(madAskAI);
|
||||
}
|
||||
public IGameController getController() {
|
||||
return matchUI.getGameController();
|
||||
@@ -309,6 +310,16 @@ public final class CDev implements ICDoc {
|
||||
getController().cheat().planeswalkTo();
|
||||
}
|
||||
|
||||
private final MouseListener madAskAI = new MouseAdapter() {
|
||||
@Override
|
||||
public void mousePressed(final MouseEvent e) {
|
||||
askAI();
|
||||
}
|
||||
};
|
||||
public void askAI() {
|
||||
getController().cheat().askAI();
|
||||
}
|
||||
|
||||
//========== End mouse listener inits
|
||||
|
||||
@Override
|
||||
|
||||
@@ -81,6 +81,9 @@ public class VDev implements IVDoc<CDev>, IDevListener {
|
||||
private final DevLabel lblRiggedRoll = new DevLabel(Localizer.getInstance().getMessage("lblRiggedRoll"));
|
||||
private final DevLabel lblWalkTo = new DevLabel(Localizer.getInstance().getMessage("lblWalkTo"));
|
||||
|
||||
private final DevLabel lblAskAI = new DevLabel(Localizer.getInstance().getMessage("lblAskAI"));
|
||||
|
||||
|
||||
private final CDev controller;
|
||||
|
||||
//========= Constructor
|
||||
@@ -116,6 +119,7 @@ public class VDev implements IVDoc<CDev>, IDevListener {
|
||||
viewport.add(this.lblUntapPermanent, halfConstraints);
|
||||
viewport.add(this.lblRiggedRoll, halfConstraintsLeft);
|
||||
viewport.add(this.lblWalkTo, halfConstraints);
|
||||
viewport.add(this.lblAskAI, halfConstraintsLeft);
|
||||
}
|
||||
|
||||
//========= Overridden methods
|
||||
@@ -294,6 +298,10 @@ public class VDev implements IVDoc<CDev>, IDevListener {
|
||||
return this.lblWalkTo;
|
||||
}
|
||||
|
||||
public DevLabel getLblAskAI() {
|
||||
return this.lblAskAI;
|
||||
}
|
||||
|
||||
/**
|
||||
* Labels that act as buttons which control dev mode functions. Labels are
|
||||
* used to support multiline text.
|
||||
|
||||
@@ -1989,6 +1989,7 @@ lblRepeatAddCard=Wiederhole letztes Karten-hinzufügen
|
||||
lblRemoveFromGame=Entferne Karte aus dem Spiel
|
||||
lblRiggedRoll=Gezinkter Weltenwürfelwurf
|
||||
lblWalkTo=Weltenwandere zu
|
||||
lblAskAI=Frage KI nach Vorschlag
|
||||
#PhaseType.java
|
||||
lblUntapStep=Enttappsegment
|
||||
lblUpkeepStep=Versorgungssegment
|
||||
|
||||
@@ -1989,6 +1989,7 @@ lblRepeatAddCard=Repeat Last Add Card
|
||||
lblRemoveFromGame=Remove Card from Game
|
||||
lblRiggedRoll=Rigged Planar Roll
|
||||
lblWalkTo=Planeswalk to
|
||||
lblAskAI=Ask AI for suggestion
|
||||
#PhaseType.java
|
||||
lblUntapStep=Untap step
|
||||
lblUpkeepStep=Upkeep step
|
||||
|
||||
@@ -1989,6 +1989,7 @@ lblRepeatAddCard=Repetir añadir última carta
|
||||
lblRemoveFromGame=Quitar carta del juego
|
||||
lblRiggedRoll=Rollo Plano montado
|
||||
lblWalkTo=Planeswalk a
|
||||
lblAskAI=Ask AI for suggestion
|
||||
#PhaseType.java
|
||||
lblUntapStep=Enderezar
|
||||
lblUpkeepStep=Mantenimiento
|
||||
|
||||
@@ -1989,6 +1989,7 @@ lblRepeatAddCard=Ripeti l''ultima azione aggiungi carta
|
||||
lblRemoveFromGame=Rimuovi una carta dal gioco
|
||||
lblRiggedRoll=Lancio di dado planare truccato
|
||||
lblWalkTo=Viaggia tra i piani (scegli il piano)
|
||||
lblAskAI=Ask AI for suggestion
|
||||
#PhaseType.java
|
||||
lblUntapStep=Sottofase di Stap
|
||||
lblUpkeepStep=Sottofase di Mantenimento
|
||||
|
||||
@@ -1990,6 +1990,7 @@ lblRepeatAddCard=最後の追加カードを再度追加
|
||||
lblRemoveFromGame=ゲームからカードを削除
|
||||
lblRiggedRoll=次元ダイスを指定
|
||||
lblWalkTo=次元カードを指定
|
||||
lblAskAI=Ask AI for suggestion
|
||||
#PhaseType.java
|
||||
lblUntapStep=アンタップ・ステップ
|
||||
lblUpkeepStep=アップキープ・ステップ
|
||||
|
||||
@@ -1990,6 +1990,7 @@ lblRepeatAddCard=重复上一张添加的牌
|
||||
lblRemoveFromGame=从游戏中删除牌
|
||||
lblRiggedRoll=触发时空骰
|
||||
lblWalkTo=时空换入
|
||||
lblAskAI=Ask AI for suggestion
|
||||
#PhaseType.java
|
||||
lblUntapStep=重置步骤
|
||||
lblUpkeepStep=维持步骤
|
||||
|
||||
@@ -59,6 +59,8 @@ public interface IDevModeCheats {
|
||||
|
||||
void planeswalkTo();
|
||||
|
||||
void askAI();
|
||||
|
||||
/**
|
||||
* Implementation of {@link IDevModeCheats} that disallows cheating by
|
||||
* performing no action whatsoever when any of its methods is called.
|
||||
@@ -141,6 +143,9 @@ public interface IDevModeCheats {
|
||||
@Override
|
||||
public void removeCardsFromGame() {
|
||||
}
|
||||
@Override
|
||||
public void askAI() {
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
@@ -36,6 +36,7 @@ import com.google.common.collect.Multimap;
|
||||
import forge.LobbyPlayer;
|
||||
import forge.StaticData;
|
||||
import forge.ai.GameState;
|
||||
import forge.ai.PlayerControllerAi;
|
||||
import forge.card.CardDb;
|
||||
import forge.card.CardStateName;
|
||||
import forge.card.CardType;
|
||||
@@ -2942,6 +2943,18 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void askAI() {
|
||||
PlayerControllerAi ai = new PlayerControllerAi(player.getGame(), player, player.getOriginalLobbyPlayer());
|
||||
player.runWithController(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
List<SpellAbility> sas = ai.chooseSpellAbilityToPlay();
|
||||
SpellAbility chosen = sas == null ? null : sas.get(0);
|
||||
getGui().message(chosen == null ? "AI doesn't want to play anything right now" : chosen.getHostCard().toString(), "AI Play Suggestion");
|
||||
}
|
||||
}, ai);
|
||||
}
|
||||
}
|
||||
|
||||
private IMacroSystem macros;
|
||||
|
||||
Reference in New Issue
Block a user