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