mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
AI Sideboarding Mode toggle as a Preferences option (#5136)
* - Initial commit for the AI sideboarding mode toggle. * - Tweak the parameter value to correspond to the enum. * - Consistency.
This commit is contained in:
@@ -47,6 +47,26 @@ public class AiProfileUtil {
|
||||
public static final String AI_PROFILE_RANDOM_MATCH = "Random (Every Match)";
|
||||
public static final String AI_PROFILE_RANDOM_DUEL = "Random (Every Game)";
|
||||
|
||||
public enum AISideboardingMode {
|
||||
Off,
|
||||
AI,
|
||||
HumanForAI;
|
||||
|
||||
public static AISideboardingMode normalizedValueOf(String value) {
|
||||
return valueOf(value.replace(" ", ""));
|
||||
}
|
||||
}
|
||||
|
||||
private static AISideboardingMode aiSideboardingMode = AISideboardingMode.Off;
|
||||
|
||||
public static AISideboardingMode getAISideboardingMode() {
|
||||
return aiSideboardingMode;
|
||||
}
|
||||
|
||||
public static void setAiSideboardingMode(AISideboardingMode mode) {
|
||||
aiSideboardingMode = mode;
|
||||
}
|
||||
|
||||
/** Builds an AI profile file name with full relative
|
||||
* path based on the profile name.
|
||||
* @param profileName the name of the profile.
|
||||
|
||||
@@ -102,7 +102,7 @@ public class PlayerControllerAi extends PlayerController {
|
||||
|
||||
@Override
|
||||
public List<PaperCard> sideboard(Deck deck, GameType gameType, String message) {
|
||||
if (!getAi().getBooleanProperty(AiProps.SIDEBOARDING_ENABLE)
|
||||
if (!brains.getGame().getRules().getAISideboardingEnabled()
|
||||
|| !deck.has(DeckSection.Sideboard)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ public class GameRules {
|
||||
private int gamesToWinMatch = 2;
|
||||
private boolean playForAnte = false;
|
||||
private boolean matchAnteRarity = false;
|
||||
private boolean AISideboardingEnabled = false;
|
||||
private boolean sideboardForAI = false;
|
||||
private final Set<GameType> appliedVariants = EnumSet.noneOf(GameType.class);
|
||||
|
||||
@@ -77,6 +78,14 @@ public class GameRules {
|
||||
sideboardForAI = sideboard;
|
||||
}
|
||||
|
||||
public boolean getAISideboardingEnabled() {
|
||||
return AISideboardingEnabled;
|
||||
}
|
||||
|
||||
public void setAISideboardingEnabled(final boolean aiSideboarding) {
|
||||
AISideboardingEnabled = aiSideboarding;
|
||||
}
|
||||
|
||||
public int getGamesToWinMatch() {
|
||||
return gamesToWinMatch;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,10 @@ import forge.screens.deckeditor.CDeckEditorUI;
|
||||
import forge.screens.deckeditor.controllers.CEditorTokenViewer;
|
||||
import forge.sound.MusicPlaylist;
|
||||
import forge.sound.SoundSystem;
|
||||
import forge.toolbox.*;
|
||||
import forge.toolbox.FComboBox;
|
||||
import forge.toolbox.FComboBoxPanel;
|
||||
import forge.toolbox.FLabel;
|
||||
import forge.toolbox.FOptionPane;
|
||||
import forge.util.Localizer;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
@@ -123,8 +126,6 @@ public enum CSubmenuPreferences implements ICDoc {
|
||||
lstControls.add(Pair.of(view.getCbRandomArtInPools(), FPref.UI_RANDOM_ART_IN_POOLS));
|
||||
lstControls.add(Pair.of(view.getCbEnforceDeckLegality(), FPref.ENFORCE_DECK_LEGALITY));
|
||||
lstControls.add(Pair.of(view.getCbPerformanceMode(), FPref.PERFORMANCE_MODE));
|
||||
lstControls.add(Pair.of(view.getCbSideboardForAI(), FPref.MATCH_SIDEBOARD_FOR_AI));
|
||||
lstControls.add(Pair.of(view.getCbExperimentalRestore(), FPref.MATCH_EXPERIMENTAL_RESTORE));
|
||||
lstControls.add(Pair.of(view.getCbFilteredHands(), FPref.FILTERED_HANDS));
|
||||
lstControls.add(Pair.of(view.getCbCloneImgSource(), FPref.UI_CLONE_MODE_SOURCE));
|
||||
lstControls.add(Pair.of(view.getCbRemoveSmall(), FPref.DECKGEN_NOSMALL));
|
||||
@@ -267,6 +268,7 @@ public enum CSubmenuPreferences implements ICDoc {
|
||||
initializeAutoUpdaterComboBox();
|
||||
initializeMulliganRuleComboBox();
|
||||
initializeAiProfilesComboBox();
|
||||
initializeAiSideboardingModeComboBox();
|
||||
initializeSoundSetsComboBox();
|
||||
initializeMusicSetsComboBox();
|
||||
initializeStackAdditionsComboBox();
|
||||
@@ -474,6 +476,21 @@ public enum CSubmenuPreferences implements ICDoc {
|
||||
panel.setComboBox(comboBox, selectedItem);
|
||||
}
|
||||
|
||||
private void initializeAiSideboardingModeComboBox() {
|
||||
final FPref userSetting = FPref.MATCH_AI_SIDEBOARDING_MODE;
|
||||
final FComboBoxPanel<String> panel = this.view.getAiSideboardingModeComboBoxPanel();
|
||||
final FComboBox<String> comboBox = createComboBox(new String[] {"Off", "AI", "Human For AI"}, userSetting);
|
||||
final String selectedItem = this.prefs.getPref(userSetting);
|
||||
panel.setComboBox(comboBox, selectedItem);
|
||||
comboBox.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
AiProfileUtil.setAiSideboardingMode(AiProfileUtil.AISideboardingMode.normalizedValueOf(comboBox.getSelectedItem()));
|
||||
System.out.println(AiProfileUtil.getAISideboardingMode());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initializeSoundSetsComboBox() {
|
||||
final FPref userSetting = FPref.UI_CURRENT_SOUND_SET;
|
||||
final FComboBoxPanel<String> panel = this.view.getSoundSetsComboBoxPanel();
|
||||
|
||||
@@ -75,7 +75,6 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
||||
private final JCheckBox cbLoadArchivedFormats = new OptionsCheckBox(localizer.getMessage("cbLoadArchivedFormats"));
|
||||
private final JCheckBox cbWorkshopSyntax = new OptionsCheckBox(localizer.getMessage("cbWorkshopSyntax"));
|
||||
private final JCheckBox cbEnforceDeckLegality = new OptionsCheckBox(localizer.getMessage("cbEnforceDeckLegality"));
|
||||
private final JCheckBox cbSideboardForAI = new OptionsCheckBox(localizer.getMessage("cbSideboardForAI"));
|
||||
private final JCheckBox cbExperimentalRestore = new OptionsCheckBox(localizer.getMessage("cbExperimentalRestore"));
|
||||
private final JCheckBox cbPerformanceMode = new OptionsCheckBox(localizer.getMessage("cbPerformanceMode"));
|
||||
private final JCheckBox cbSROptimize = new OptionsCheckBox(localizer.getMessage("cbSROptimize"));
|
||||
@@ -133,6 +132,7 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
||||
private final FComboBoxPanel<String> cbpSoundSets = new FComboBoxPanel<>(localizer.getMessage("cbpSoundSets")+":");
|
||||
private final FComboBoxPanel<String> cbpMusicSets = new FComboBoxPanel<>(localizer.getMessage("cbpMusicSets")+":");
|
||||
private final FComboBoxPanel<String> cbpAiProfiles = new FComboBoxPanel<>(localizer.getMessage("cbpAiProfiles")+":");
|
||||
private final FComboBoxPanel<String> cbpAiSideboardingMode = new FComboBoxPanel<>(localizer.getMessage("cbpAiSideboardingMode")+":");
|
||||
private final FComboBoxPanel<String> cbpStackAdditions = new FComboBoxPanel<>(localizer.getMessage("cbpStackAdditions")+":");
|
||||
private final FComboBoxPanel<String> cbpLandPlayed = new FComboBoxPanel<>(localizer.getMessage("cbpLandPlayed")+":");
|
||||
private final FComboBoxPanel<String> cbpDisplayCurrentCardColors = new FComboBoxPanel<>(localizer.getMessage("cbpDisplayCurrentCardColors")+":");
|
||||
@@ -231,8 +231,8 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
||||
pnlPrefs.add(cbPerformanceMode, titleConstraints);
|
||||
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlPerformanceMode")), descriptionConstraints);
|
||||
|
||||
pnlPrefs.add(cbSideboardForAI, titleConstraints);
|
||||
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlSideboardForAI")), descriptionConstraints);
|
||||
pnlPrefs.add(cbpAiSideboardingMode, titleConstraints);
|
||||
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlpAiSideboardingMode")), descriptionConstraints);
|
||||
|
||||
pnlPrefs.add(cbExperimentalRestore, titleConstraints);
|
||||
pnlPrefs.add(new NoteLabel(localizer.getMessage("nlExperimentalRestore")), descriptionConstraints);
|
||||
@@ -769,6 +769,10 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
||||
return cbpAiProfiles;
|
||||
}
|
||||
|
||||
public FComboBoxPanel<String> getAiSideboardingModeComboBoxPanel() {
|
||||
return cbpAiSideboardingMode;
|
||||
}
|
||||
|
||||
public FComboBoxPanel<String> getCbpStackAdditionsComboBoxPanel() {
|
||||
return cbpStackAdditions;
|
||||
}
|
||||
@@ -841,10 +845,6 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
||||
return cbPerformanceMode;
|
||||
}
|
||||
|
||||
public JCheckBox getCbSideboardForAI() {
|
||||
return cbSideboardForAI;
|
||||
}
|
||||
|
||||
public JCheckBox getCbExperimentalRestore() {
|
||||
return cbExperimentalRestore;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package forge.screens.settings;
|
||||
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.google.common.collect.Lists;
|
||||
import forge.Forge;
|
||||
import forge.Graphics;
|
||||
import forge.MulliganDefs;
|
||||
@@ -225,13 +226,19 @@ public class SettingsPage extends TabPage<SettingsScreen> {
|
||||
Forge.getLocalizer().getMessage("cbPerformanceMode"),
|
||||
Forge.getLocalizer().getMessage("nlPerformanceMode")),
|
||||
1);
|
||||
lstSettings.addItem(new BooleanSetting(FPref.MATCH_SIDEBOARD_FOR_AI,
|
||||
Forge.getLocalizer().getMessage("cbSideboardForAI"),
|
||||
Forge.getLocalizer().getMessage("nlSideboardForAI")),
|
||||
1);
|
||||
lstSettings.addItem(new CustomSelectSetting(FPref.MATCH_AI_SIDEBOARDING_MODE, Forge.getLocalizer().getMessage("cbpAiSideboardingMode"),
|
||||
Forge.getLocalizer().getMessage("nlpAiSideboardingMode"),
|
||||
Lists.newArrayList("Off", "AI", "Human For AI")) {
|
||||
@Override
|
||||
public void valueChanged(String newValue) {
|
||||
super.valueChanged(newValue);
|
||||
AiProfileUtil.setAiSideboardingMode(AiProfileUtil.AISideboardingMode.normalizedValueOf(newValue));
|
||||
System.out.println(AiProfileUtil.getAISideboardingMode());
|
||||
}
|
||||
}, 1);
|
||||
lstSettings.addItem(new BooleanSetting(FPref.MATCH_EXPERIMENTAL_RESTORE,
|
||||
Forge.getLocalizer().getMessage("cbExperimentalRestore"),
|
||||
Forge.getLocalizer().getMessage("nlExperimentalRestore")),
|
||||
Forge.getLocalizer().getMessage("cbExperimentalRestore"),
|
||||
Forge.getLocalizer().getMessage("nlExperimentalRestore")),
|
||||
1);
|
||||
lstSettings.addItem(new BooleanSetting(FPref.FILTERED_HANDS,
|
||||
Forge.getLocalizer().getMessage("cbFilteredHands"),
|
||||
|
||||
@@ -313,8 +313,6 @@ SACRIFICE_DEFAULT_PREF_ALLOW_TOKENS=true
|
||||
# A creature should evaluate to no more than this much to be considered for default SacCost preference
|
||||
SACRIFICE_DEFAULT_PREF_MAX_CREATURE_EVAL=135
|
||||
|
||||
# Master toggle enabling AI sideboarding
|
||||
SIDEBOARDING_ENABLE=true
|
||||
# Enable sideboarding in limited formats (e.g. Sealed, Draft)
|
||||
SIDEBOARDING_IN_LIMITED_FORMATS=false
|
||||
# Chance to proceed with sideboarding any given pair of cards in the devised sideboarding plan
|
||||
|
||||
@@ -314,8 +314,6 @@ SACRIFICE_DEFAULT_PREF_ALLOW_TOKENS=true
|
||||
# A creature should evaluate to no more than this much to be considered for default SacCost preference
|
||||
SACRIFICE_DEFAULT_PREF_MAX_CREATURE_EVAL=135
|
||||
|
||||
# Master toggle enabling AI sideboarding
|
||||
SIDEBOARDING_ENABLE=true
|
||||
# Enable sideboarding in limited formats (e.g. Sealed, Draft)
|
||||
SIDEBOARDING_IN_LIMITED_FORMATS=false
|
||||
# Chance to proceed with sideboarding any given pair of cards in the devised sideboarding plan
|
||||
|
||||
@@ -314,8 +314,6 @@ SACRIFICE_DEFAULT_PREF_ALLOW_TOKENS=true
|
||||
# A creature should evaluate to no more than this much to be considered for default SacCost preference
|
||||
SACRIFICE_DEFAULT_PREF_MAX_CREATURE_EVAL=135
|
||||
|
||||
# Master toggle enabling AI sideboarding
|
||||
SIDEBOARDING_ENABLE=true
|
||||
# Enable sideboarding in limited formats (e.g. Sealed, Draft)
|
||||
SIDEBOARDING_IN_LIMITED_FORMATS=false
|
||||
# Chance to proceed with sideboarding any given pair of cards in the devised sideboarding plan
|
||||
|
||||
@@ -314,8 +314,6 @@ SACRIFICE_DEFAULT_PREF_ALLOW_TOKENS=true
|
||||
# A creature should evaluate to no more than this much to be considered for default SacCost preference
|
||||
SACRIFICE_DEFAULT_PREF_MAX_CREATURE_EVAL=135
|
||||
|
||||
# Master toggle enabling AI sideboarding
|
||||
SIDEBOARDING_ENABLE=true
|
||||
# Enable sideboarding in limited formats (e.g. Sealed, Draft)
|
||||
SIDEBOARDING_IN_LIMITED_FORMATS=false
|
||||
# Chance to proceed with sideboarding any given pair of cards in the devised sideboarding plan
|
||||
|
||||
@@ -70,7 +70,7 @@ cbLoadCardsLazily=Lade Kartenskripte verzögert
|
||||
cbLoadArchivedFormats=Aktiviere archivierte Formate
|
||||
cbWorkshopSyntax=Workshop Syntax-Checker
|
||||
cbEnforceDeckLegality=Deckkonformität
|
||||
cbSideboardForAI=Sideboard für Mensch/KI
|
||||
cbpAiSideboardingMode=AI Sideboarding Mode
|
||||
cbPerformanceMode=Performance-Modus
|
||||
cbFilteredHands=Alternative Starthand
|
||||
cbImageFetcher=Lade automatisch fehlende Kartenbilder
|
||||
@@ -156,7 +156,7 @@ nlEnableAICheats=Erlaubt es der KI zu betrügen um Vorteile zu erlangen. Sofern
|
||||
nlManaBurn=Spiele mit Manabrand (wurde mit M10 aus den Regeln entfernt).
|
||||
nlManaLostPrompt=Aktiviere, um vor Leerung des Manapools eine Warnung zu erhalten.
|
||||
nlEnforceDeckLegality=Erzwingt eine Deck-Konformität zum gewählten Format (minimale Deckgröße, Anzahl pro Karte im Deck, usw.).
|
||||
nlSideboardForAI=Erlaubt Spielern das Nutzen des Sideboards von KI-Decks und in Constructed-Formaten.
|
||||
nlpAiSideboardingMode=Choose the way the AI sideboards: Off (the AI doesn't sideboard), AI (the AI sideboards for itself, currently mostly random), Human For AI (the human player sideboards for the AI in Constructed formats).
|
||||
nlPerformanceMode=Schalten zusätzlich Prüfungen auf statische Fähigkeiten ab, um das Spiel zu beschleunigen. Warnung: Kann Probleme mit 'Aufblitzen' bei Karten von KI-Gegner verursachen!
|
||||
nlFilteredHands=Erzeugt zwei Starthände, und behält die, welche am nächsten an der durchschnittlichen Länderanzahl im Deck ist. (Erfordert Neustart)
|
||||
nlCloneImgSource=Zeige das originale Kartenbild des Klones statt der geklonten Karte.
|
||||
|
||||
@@ -70,7 +70,7 @@ cbLoadCardsLazily=Load Card Scripts Lazily
|
||||
cbLoadArchivedFormats=Load Archived Formats
|
||||
cbWorkshopSyntax=Workshop Syntax Checker
|
||||
cbEnforceDeckLegality=Deck Conformance
|
||||
cbSideboardForAI=Human Sideboard for AI
|
||||
cbpAiSideboardingMode=AI Sideboarding Mode
|
||||
cbExperimentalRestore=EXPERIMENTAL Undo restore
|
||||
cbPerformanceMode=Performance Mode
|
||||
cbFilteredHands=Filtered Hands
|
||||
@@ -157,7 +157,7 @@ nlEnableAICheats=Allow the AI to cheat to gain advantage (for personalities that
|
||||
nlManaBurn=Play with mana burn (from pre-Magic 2010 rules).
|
||||
nlManaLostPrompt=When enabled, you get a warning if passing priority would cause you to lose mana in your mana pool.
|
||||
nlEnforceDeckLegality=Enforces deck legality relevant to each environment (minimum deck sizes, max card count etc).
|
||||
nlSideboardForAI=Allows users to sideboard with the AIs deck and sideboard in constructed game formats.
|
||||
nlpAiSideboardingMode=Choose the way the AI sideboards: Off (the AI doesn't sideboard), AI (the AI sideboards for itself, currently mostly random), Human For AI (the human player sideboards for the AI in Constructed formats).
|
||||
nlExperimentalRestore=EXPERIMENTAL - Stores a snapshot to be used for undoing spells or abilities
|
||||
nlPerformanceMode=Disables additional static abilities checks to speed up the game engine. (Warning: breaks some ''as if had flash'' scenarios when casting cards owned by opponents).
|
||||
nlFilteredHands=Generates two starting hands and keeps the one with the closest to average land count for the deck. (REQUIRES RESTART)
|
||||
|
||||
@@ -70,7 +70,7 @@ cbLoadCardsLazily=Cargar scripts de cartas modo perezoso
|
||||
cbLoadArchivedFormats=Load Archived Formats
|
||||
cbWorkshopSyntax=Verificador de sintaxis del Taller
|
||||
cbEnforceDeckLegality=Conformidad del mazo
|
||||
cbSideboardForAI=Banquillo humano para la IA
|
||||
cbpAiSideboardingMode=AI Sideboarding Mode
|
||||
cbPerformanceMode=Modo de desempeño
|
||||
cbFilteredHands=Manos filtradas
|
||||
cbImageFetcher=Descargar automáticamente el arte de la carta si no existe
|
||||
@@ -156,7 +156,7 @@ nlEnableAICheats=Permita que la IA haga trampa para obtener ventaja (para person
|
||||
nlManaBurn=Jugar con quemadura de maná (reglas previas a Magic 2010).
|
||||
nlManaLostPrompt=Cuando está habilitado, recibes una advertencia si la prioridad de pase te haría perder maná en tu reserva de maná.
|
||||
nlEnforceDeckLegality=Aplica la legalidad del mazo correspondiente a cada entorno (tamaño mínimo de mazo, número máximo de cartas, etc.).
|
||||
nlSideboardForAI=Permite a los usuarios sideboard con el mazo de la IA y el sideboard en formatos de juego construidos.
|
||||
nlpAiSideboardingMode=Choose the way the AI sideboards: Off (the AI doesn't sideboard), AI (the AI sideboards for itself, currently mostly random), Human For AI (the human player sideboards for the AI in Constructed formats).
|
||||
nlPerformanceMode=Desactiva las comprobaciones de habilidades estáticas adicionales para acelerar el motor del juego. (Advertencia: rompe algunos escenarios ''como si tuviera flash'' cuando se lanzan cartas de propiedad de los oponentes).
|
||||
nlFilteredHands=Genera dos manos iniciales y mantiene la que tiene el recuento de tierras más cercano al promedio del mazo (Requiere reinicio)
|
||||
nlCloneImgSource=Cuando se habilita, los clones usarán su arte original en lugar del arte de la carta clonada.
|
||||
|
||||
@@ -70,7 +70,7 @@ cbLoadCardsLazily=Charger les scripts de carte paresseusement
|
||||
cbLoadArchivedFormats=Charger les formats archivés
|
||||
cbWorkshopSyntax=Vérificateur de syntaxe de l''atelier
|
||||
cbEnforceDeckLegality=Conformité du deck
|
||||
cbSideboardForAI=Réserve humain pour l''IA
|
||||
cbpAiSideboardingMode=AI Sideboarding Mode
|
||||
cbPerformanceMode=Mode Performances
|
||||
cbFilteredHands=Mains filtrées
|
||||
cbImageFetcher=Télécharger automatiquement l''illustration de la carte manquante
|
||||
@@ -156,7 +156,7 @@ nlEnableAICheats=Autoriser l''IA à tricher pour obtenir un avantage (pour les p
|
||||
nlManaBurn=Jouez avec la brûlure de mana (à partir des règles d''avant Magic 2010).
|
||||
nlManaLostPrompt=Lorsqu''il est activé, vous recevez un avertissement si le fait de passer la priorité vous ferait perdre du mana dans votre pool de mana.
|
||||
nlEnforceDeckLegality=Applique la légalité du deck en fonction de chaque environnement (taille minimale du deck, nombre maximum de cartes, etc.).
|
||||
nlSideboardForAI=Permet aux utilisateurs de se sideboarder avec le deck IA et le sideboard dans des formats de jeu construits.
|
||||
nlpAiSideboardingMode=Choose the way the AI sideboards: Off (the AI doesn't sideboard), AI (the AI sideboards for itself, currently mostly random), Human For AI (the human player sideboards for the AI in Constructed formats).
|
||||
nlPerformanceMode=Désactive les vérifications supplémentaires des capacités statiques pour accélérer le moteur de jeu. (Attention : casse certains scénarios ''comme si c''était flash'' lors du lancement de cartes appartenant à des adversaires).
|
||||
nlFilteredHands=Génère deux mains de départ et conserve celle dont le nombre de terrains est le plus proche de la moyenne pour le deck. (NÉCESSITE UN REDÉMARRAGE)
|
||||
nlCloneImgSource=Lorsqu''il est activé, les clones utiliseront leur art original au lieu de l''art de la carte clonée.
|
||||
|
||||
@@ -69,7 +69,7 @@ cbLoadCardsLazily=Carica gli script delle carte lentamente
|
||||
cbLoadArchivedFormats=Load Archived Formats
|
||||
cbWorkshopSyntax=Controllo sintassi per Officina
|
||||
cbEnforceDeckLegality=Conformità del mazzo
|
||||
cbSideboardForAI=Sideboard umana per IA
|
||||
cbpAiSideboardingMode=AI Sideboarding Mode
|
||||
cbPerformanceMode=Modalità alte prestazioni
|
||||
cbFilteredHands=Mani Filtrate
|
||||
cbImageFetcher=Scarica automaticamente l''arte delle carte mancanti
|
||||
@@ -155,7 +155,7 @@ nlEnableAICheats=Consentire all''intelligenza artificiale di imbrogliare per ott
|
||||
nlManaBurn=Gioca con mana burn (dalle regole pre-Magic 2010).
|
||||
nlManaLostPrompt=Quando abilitato, viene visualizzato un avviso se passare la priorità potrebbe causare la perdita di mana nella riserva di mana.
|
||||
nlEnforceDeckLegality=Fa rispettare la legalità del mazzo relativa a ciascun ambiente (dimensioni minime del mazzo, numero massimo di carte ecc.).
|
||||
nlSideboardForAI=Consente agli utenti di gestire la sideboard con il mazzo dell''IA e la propria nei formati di gioco constructed.
|
||||
nlpAiSideboardingMode=Choose the way the AI sideboards: Off (the AI doesn't sideboard), AI (the AI sideboards for itself, currently mostly random), Human For AI (the human player sideboards for the AI in Constructed formats).
|
||||
nlPerformanceMode=Disabilita delle verifiche aggiuntive delle abilità statiche per velocizzare il motore di gioco. (Attenzione: non fa funzionare correttamente il giocare carte di proprietà di un avversario in contesti "come se avesse lampo").
|
||||
nlFilteredHands=Genera due mani iniziali e mantiene quella con il numero di terre più vicino alla media del mazzo. (RIAVVIO NECESSARIO)
|
||||
nlCloneImgSource=Se abilitato, i cloni useranno la loro arte originale invece di quella della carta clonata.
|
||||
|
||||
@@ -70,7 +70,7 @@ cbLoadCardsLazily=カードスクリプトを動的ロードする
|
||||
cbLoadArchivedFormats=Load Archived Formats
|
||||
cbWorkshopSyntax=ワークショップ構文チェッカー
|
||||
cbEnforceDeckLegality=デッキの適正チェック
|
||||
cbSideboardForAI=人間が AI の代わりにサイドボードする
|
||||
cbpAiSideboardingMode=AI Sideboarding Mode
|
||||
cbPerformanceMode=パフォーマンスモード
|
||||
cbFilteredHands=初期ハンド補正
|
||||
cbImageFetcher=欠落したカード画像を自動的にダウンロードする
|
||||
@@ -156,7 +156,7 @@ nlEnableAICheats=AI がチートしてアドバンテージを獲得できるよ
|
||||
nlManaBurn=マナバーンでプレイ。(基本セット2010 以前のマジックルール)
|
||||
nlManaLostPrompt=有効にすると、優先権を放棄するとマナプールのマナが失われる場合に警告が表示されます。
|
||||
nlEnforceDeckLegality=各環境に使えるデッキの合法性を強制します。(最小デッキサイズ、最大カード数など)
|
||||
nlSideboardForAI=人間が構築戦の時、AI の替わりに AI のデッキのサイドボードをします。
|
||||
nlpAiSideboardingMode=Choose the way the AI sideboards: Off (the AI doesn't sideboard), AI (the AI sideboards for itself, currently mostly random), Human For AI (the human player sideboards for the AI in Constructed formats).
|
||||
nlPerformanceMode=常在型能力の追加チェックを無効にして、ゲームエンジンを高速化します。 (警告:対戦相手が所有するカードをキャストするときに、「あたかもフラッシュがあるかのように」の能力が無効になるかもしれません。)
|
||||
nlFilteredHands=2つのハンドを生成し、デッキの平均土地数に最も近いハンドをキープします。
|
||||
nlCloneImgSource=有効にすると、クローンはクローン先のカードのアートの代わりに元のアートを使用します。
|
||||
|
||||
@@ -71,7 +71,7 @@ cbLoadCardsLazily=Carregar Scripts de Cartas sob Demanda
|
||||
cbLoadArchivedFormats=Load Archived Formats
|
||||
cbWorkshopSyntax=Verificador de Sintaxe no Workshop
|
||||
cbEnforceDeckLegality=Conformidade do Deck
|
||||
cbSideboardForAI=Humano e a Reserva de IA
|
||||
cbpAiSideboardingMode=AI Sideboarding Mode
|
||||
cbPerformanceMode=Modo de Desempenho
|
||||
cbFilteredHands=Mãos Filtradas
|
||||
cbImageFetcher=Baixar Automaticamente a Arte de Cartas Ausentes
|
||||
@@ -157,7 +157,7 @@ nlEnableAICheats=Permita que a trapaça IA obtenha vantagem (para personalidades
|
||||
nlManaBurn=Jogar com queima de mana (das regras do Magic anteriores a 2010).
|
||||
nlManaLostPrompt=Quando ativado, você recebe um aviso se a prioridade de passar fizer com que você perca mana na reserva de mana.
|
||||
nlEnforceDeckLegality=Força a legalidade do deck relevante para cada ambiente (tamanho mínimo, número máximo de cartas etc).
|
||||
nlSideboardForAI=Permite os usuários trocarem cartas com decks IA e a reserva em formatos de jogo construídos.
|
||||
nlpAiSideboardingMode=Choose the way the AI sideboards: Off (the AI doesn't sideboard), AI (the AI sideboards for itself, currently mostly random), Human For AI (the human player sideboards for the AI in Constructed formats).
|
||||
nlPerformanceMode=Desabilita verificações adicionais de habilidades estáticas para acelerar o jogo. (Aviso\: quebra alguns cenários 'como se tivesse lampejo' ao conjurar cartas pertencentes a adversários).
|
||||
nlFilteredHands=Gera duas mãos iniciais e mantém a mão mais próxima da média da contagem de terreno do deck. (REQUER REINÍCIO)
|
||||
nlCloneImgSource=Quando ativado os clones usarão sua arte original em vez da arte da carta clonada.
|
||||
|
||||
@@ -70,7 +70,7 @@ cbLoadCardsLazily=惰性加载卡牌脚本
|
||||
cbLoadArchivedFormats=加载旧赛制
|
||||
cbWorkshopSyntax=作坊语法检查
|
||||
cbEnforceDeckLegality=套牌一致性
|
||||
cbSideboardForAI=玩家为AI换备
|
||||
cbpAiSideboardingMode=AI Sideboarding Mode
|
||||
cbPerformanceMode=性能模式
|
||||
cbFilteredHands=手牌过滤
|
||||
cbImageFetcher=自动下载缺失的图片
|
||||
@@ -156,7 +156,7 @@ nlEnableAICheats=允许AI进行作弊以获得优势(对于已经设置了作
|
||||
nlManaBurn=使用法术力灼烧(M10之前的规则)
|
||||
nlManaLostPrompt=启用后,如果让过优先权会导致法术力池清空,你将收到一个警告提示。
|
||||
nlEnforceDeckLegality=强制每个与环境相关的套牌合法性(最小单卡数,最大单卡数等)。
|
||||
nlSideboardForAI=允许用户在构筑赛制中为AI换备牌。
|
||||
nlpAiSideboardingMode=Choose the way the AI sideboards: Off (the AI doesn't sideboard), AI (the AI sideboards for itself, currently mostly random), Human For AI (the human player sideboards for the AI in Constructed formats).
|
||||
nlPerformanceMode=禁止其他静态能力检查以加速游戏引擎(警告:对手手牌有闪现单卡能使用时可能会跳过)。
|
||||
nlFilteredHands=生成两个起手并发给你最接近套牌地比例的起手(需要重启)
|
||||
nlCloneImgSource=启用克隆的时候将使用原画而不是克隆牌的画
|
||||
|
||||
@@ -9,6 +9,7 @@ import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import forge.ai.AiProfileUtil;
|
||||
import forge.gui.control.PlaybackSpeed;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -89,9 +90,23 @@ public class HostedMatch {
|
||||
gameRules.setPlayForAnte(FModel.getPreferences().getPrefBoolean(FPref.UI_ANTE));
|
||||
gameRules.setMatchAnteRarity(FModel.getPreferences().getPrefBoolean(FPref.UI_ANTE_MATCH_RARITY));
|
||||
gameRules.setManaBurn(FModel.getPreferences().getPrefBoolean(FPref.UI_MANABURN));
|
||||
gameRules.setSideboardForAI(FModel.getPreferences().getPrefBoolean(FPref.MATCH_SIDEBOARD_FOR_AI));
|
||||
gameRules.setUseGrayText(FModel.getPreferences().getPrefBoolean(FPref.UI_GRAY_INACTIVE_TEXT));
|
||||
gameRules.setGamesPerMatch(FModel.getPreferences().getPrefInt(FPref.UI_MATCHES_PER_GAME));
|
||||
// AI specific sideboarding rules
|
||||
switch (AiProfileUtil.getAISideboardingMode()) {
|
||||
case Off:
|
||||
gameRules.setAISideboardingEnabled(false);
|
||||
gameRules.setSideboardForAI(false);
|
||||
break;
|
||||
case AI:
|
||||
gameRules.setAISideboardingEnabled(true);
|
||||
gameRules.setSideboardForAI(false);
|
||||
break;
|
||||
case HumanForAI:
|
||||
gameRules.setAISideboardingEnabled(true);
|
||||
gameRules.setSideboardForAI(true);
|
||||
break;
|
||||
}
|
||||
return gameRules;
|
||||
}
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
|
||||
SUBMENU_SETTINGS ("false"),
|
||||
SUBMENU_UTILITIES ("false"),
|
||||
|
||||
MATCH_SIDEBOARD_FOR_AI("true"), // TODO What do when AI knows how to SIdeboard?
|
||||
MATCH_AI_SIDEBOARDING_MODE("Human For AI"),
|
||||
MATCH_EXPERIMENTAL_RESTORE("false"),
|
||||
ENFORCE_DECK_LEGALITY ("true"),
|
||||
PERFORMANCE_MODE ("false"),
|
||||
|
||||
Reference in New Issue
Block a user