From bf73e14937efaf2dde6fcc3c5f461f1f677e353a Mon Sep 17 00:00:00 2001 From: Lancarus Date: Sat, 9 Mar 2024 12:17:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=90=A8=E7=B1=B3=E8=82=89=E9=B8=BD?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=87=B9=E8=BF=9C=E8=A7=81=E5=AF=86=E6=96=87?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Task/Interface/RoguelikeTask.cpp | 3 +++ src/MaaCore/Task/Roguelike/RoguelikeConfig.h | 20 +++++++++----- ...RoguelikeDifficultySelectionTaskPlugin.cpp | 6 ++--- .../RoguelikeFoldartalGainTaskPlugin.cpp | 22 ++++++++++++++- src/MaaWpfGui/Constants/ConfigurationKeys.cs | 2 ++ src/MaaWpfGui/Main/AsstProxy.cs | 15 ++++++++++- src/MaaWpfGui/Res/Localizations/en-us.xaml | 4 ++- src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 4 ++- src/MaaWpfGui/Res/Localizations/ko-kr.xaml | 2 ++ src/MaaWpfGui/Res/Localizations/zh-cn.xaml | 2 ++ src/MaaWpfGui/Res/Localizations/zh-tw.xaml | 2 ++ .../ViewModels/UI/SettingsViewModel.cs | 27 +++++++++++++++++++ .../ViewModels/UI/TaskQueueViewModel.cs | 4 ++- .../RoguelikeSettingsUserControl.xaml | 14 ++++++++++ 14 files changed, 112 insertions(+), 15 deletions(-) diff --git a/src/MaaCore/Task/Interface/RoguelikeTask.cpp b/src/MaaCore/Task/Interface/RoguelikeTask.cpp index a0a7fb5737..72071dc6c8 100644 --- a/src/MaaCore/Task/Interface/RoguelikeTask.cpp +++ b/src/MaaCore/Task/Interface/RoguelikeTask.cpp @@ -100,6 +100,9 @@ bool asst::RoguelikeTask::set_params(const json::value& params) // 是否凹指定干员开局直升 m_roguelike_config_ptr->set_start_with_elite_two(params.get("start_with_elite_two", false)); m_roguelike_config_ptr->set_only_start_with_elite_two(params.get("only_start_with_elite_two", false)); + // 是否凹开局远见密文板 + m_roguelike_config_ptr->set_first_floor_foldartal(params.contains("first_floor_foldartal")); + m_roguelike_config_ptr->set_start_floor_foldartal(params.get("first_floor_foldartal", "")); // 是否生活队凹开局板子 m_roguelike_config_ptr->set_start_foldartal(params.contains("start_foldartal_list")); diff --git a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h index 6b1af3b701..82d0e7803e 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h @@ -55,6 +55,10 @@ namespace asst bool get_start_with_elite_two() const { return m_start_with_elite_two; } void set_only_start_with_elite_two(bool value) { m_only_start_with_elite_two = value; } bool get_only_start_with_elite_two() const { return m_only_start_with_elite_two; } + void set_first_floor_foldartal(bool first_floor_foldartal) { m_first_floor_foldartal = first_floor_foldartal; } + bool get_first_floor_foldartal() const { return m_first_floor_foldartal; } + void set_start_floor_foldartal(std::string value) { m_start_floor_foldartal = value; } + std::string get_start_floor_foldartal() const { return m_start_floor_foldartal; } void set_start_foldartal(bool start_foldartal) { m_start_foldartal = start_foldartal; } bool get_start_foldartal() const { return m_start_foldartal; } void set_start_foldartal_list(std::vector string) { m_start_foldartal_list = string; } @@ -70,6 +74,8 @@ namespace asst int m_difficulty = 0; // 难度 bool m_start_with_elite_two = false; // 在刷开局模式下凹开局干员精二直升 bool m_only_start_with_elite_two = false; // 只凹开局干员精二直升且不进行作战 + bool m_first_floor_foldartal = false; // 凹远见密文板 + std::string m_start_floor_foldartal; // 需要凹的远见 bool m_start_foldartal = false; // 生活队凹开局密文板 std::vector m_start_foldartal_list; // 需要凹的板子 int m_invest_maximum = 0; // 投资次数上限 @@ -101,16 +107,16 @@ namespace asst const std::vector& get_foldartal() const { return m_foldartal; } private: - int m_recruitment_count = 0; // 招募次数 - bool m_recruitment_starts_complete = false; // 开局干员是否已经招募 - bool m_recruitment_team_complete = false; // 阵容是否完备 - bool m_trader_no_longer_buy = false; // 不再购买藏品 - std::string m_core_char; // 开局干员名 - bool m_team_full_without_rookie = false; + int m_recruitment_count = 0; // 招募次数 + bool m_recruitment_starts_complete = false; // 开局干员是否已经招募 + bool m_recruitment_team_complete = false; // 阵容是否完备 + bool m_trader_no_longer_buy = false; // 不再购买藏品 + std::string m_core_char; // 开局干员名 + bool m_team_full_without_rookie = false; // 编队内没有预干员 bool m_use_support = false; // 开局干员是否为助战干员 bool m_use_nonfriend_support = false; // 是否可以是非好友助战干员 std::unordered_map m_oper; // 干员精英&等级 std::optional m_foldartal_floor; // 当前层的预见密文板,在下一层获得 - std::vector m_foldartal; // 所有密文板 + std::vector m_foldartal; // 所有已获得密文板 }; } // namespace asst diff --git a/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp index 97fb858510..6349a8a4e9 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeDifficultySelectionTaskPlugin.cpp @@ -37,9 +37,9 @@ bool asst::RoguelikeDifficultySelectionTaskPlugin::_run() // 当前难度 int difficulty = m_config->get_difficulty(); - // 是否只凹直升 - bool only_start_with_elite_two = m_config->get_only_start_with_elite_two(); - if (m_config->get_theme() != RoguelikeTheme::Phantom && mode == RoguelikeMode::Collectible && !only_start_with_elite_two) { + // 是否不进行作战 + bool no_battle = m_config->get_only_start_with_elite_two() || m_config->get_first_floor_foldartal(); + if (m_config->get_theme() != RoguelikeTheme::Phantom && mode == RoguelikeMode::Collectible && !no_battle) { if (difficulty == INT_MAX) { ProcessTask(*this, { m_config->get_theme() + "@Roguelike@ChooseDifficulty_Hardest" }).run(); } diff --git a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.cpp index a9f85b2162..f36e73e648 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeFoldartalGainTaskPlugin.cpp @@ -2,6 +2,7 @@ #include "Controller/Controller.h" #include "Status.h" +#include "Task/ProcessTask.h" #include "Utils/Logger.hpp" #include "Vision/OCRer.h" @@ -78,7 +79,26 @@ void asst::RoguelikeFoldartalGainTaskPlugin::enter_next_floor() OCRer analyzer(ctrler()->get_image()); analyzer.set_task_info(m_config->get_theme() + "@Roguelike@FoldartalGainOcrNextLevel"); if (analyzer.analyze()) { - foldartal_floor = analyzer.get_result().front().text; + std::string foldartar_will_get_next_floor = analyzer.get_result().front().text; + foldartal_floor = foldartar_will_get_next_floor; + auto info = basic_info_with_what("FoldartalGainOcrNextLevel"); + info["details"]["foldartal"] = foldartar_will_get_next_floor; + callback(AsstMsg::SubTaskExtraInfo, info); + + if (m_config->get_first_floor_foldartal()) { + Log.info("Foldartal will get next floor:", foldartar_will_get_next_floor); + if (foldartar_will_get_next_floor == m_config->get_start_floor_foldartal()) { + m_task_ptr->set_enable(false); + } + else { + ProcessTask(*this, { m_config->get_theme() + "@Roguelike@NextLevel" }) + .set_times_limit("Roguelike@StrategyChange", 0) + .run(); + ProcessTask(*this, { m_config->get_theme() + "@Roguelike@ExitThenAbandon" }) + .set_times_limit("Roguelike@Abandon", 0) + .run(); + } + } } m_config->set_foldartal_floor(std::move(foldartal_floor)); } diff --git a/src/MaaWpfGui/Constants/ConfigurationKeys.cs b/src/MaaWpfGui/Constants/ConfigurationKeys.cs index 40fb5b433b..92cb3914ec 100644 --- a/src/MaaWpfGui/Constants/ConfigurationKeys.cs +++ b/src/MaaWpfGui/Constants/ConfigurationKeys.cs @@ -105,6 +105,8 @@ namespace MaaWpfGui.Constants public const string RoguelikeCoreChar = "Roguelike.CoreChar"; public const string RoguelikeStartWithEliteTwo = "Roguelike.RoguelikeStartWithEliteTwo"; public const string RoguelikeOnlyStartWithEliteTwo = "Roguelike.RoguelikeOnlyStartWithEliteTwo"; + public const string Roguelike3FirstFloorFoldartal = "Roguelike.Roguelike3FirstFloorFoldartal"; + public const string Roguelike3StartFloorFoldartal = "Roguelike.Roguelike3StartFloorFoldartal"; public const string Roguelike3NewSquad2StartingFoldartal = "Roguelike.Roguelike3NewSquad2StartingFoldartal"; public const string Roguelike3NewSquad2StartingFoldartals = "Roguelike.Roguelike3NewSquad2StartingFoldartals"; public const string RoguelikeUseSupportUnit = "Roguelike.RoguelikeUseSupportUnit"; diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 051312b676..1626cbbd2f 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -1237,6 +1237,10 @@ namespace MaaWpfGui.Main Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("RoguelikeEvent") + $" {subTaskDetails["name"]}"); break; + case "FoldartalGainOcrNextLevel": + Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("FoldartalGainOcrNextLevel") + $" {subTaskDetails["foldartal"]}"); + break; + case "PenguinId": { string id = subTaskDetails["id"]?.ToString(); @@ -2039,6 +2043,8 @@ namespace MaaWpfGui.Main /// TODO. /// 是否凹开局直升 /// 是否只凹开局直升,不进行作战 + /// 凹第一层远见板子 + /// 需要凹的板子 /// 是否在萨米肉鸽生活队凹开局板子 /// 需要凹的板子,用;连接的字符串 /// 是否core_char使用好友助战 @@ -2047,7 +2053,9 @@ namespace MaaWpfGui.Main /// 是否用骰子刷新商店购买特殊商品,目前支持水月肉鸽的指路鳞 /// 是否成功。 public bool AsstAppendRoguelike(int mode, int starts, bool investmentEnabled, bool investmentEnterSecondFloor, int invests, bool stopWhenFull, - string squad, string roles, string coreChar, bool startWithEliteTwo, bool onlyStartWithEliteTwo, bool roguelike3NewSquad2StartingFoldartal, string roguelike3NewSquad2StartingFoldartals, bool useSupport, bool enableNonFriendSupport, string theme, bool refreshTraderWithDice) + string squad, string roles, string coreChar, bool startWithEliteTwo, bool onlyStartWithEliteTwo, bool roguelike3FirstFloorFoldartal, + string roguelike3StartFloorFoldartal, bool roguelike3NewSquad2StartingFoldartal, string roguelike3NewSquad2StartingFoldartals, + bool useSupport, bool enableNonFriendSupport, string theme, bool refreshTraderWithDice) { var taskParams = new JObject { @@ -2081,6 +2089,11 @@ namespace MaaWpfGui.Main taskParams["start_with_elite_two"] = mode == 4 && theme != "Phantom" && startWithEliteTwo; taskParams["only_start_with_elite_two"] = mode == 4 && theme != "Phantom" && startWithEliteTwo && onlyStartWithEliteTwo; + if (mode == 4 && theme == "Sami" && roguelike3FirstFloorFoldartal && roguelike3StartFloorFoldartal.Length > 0) + { + taskParams["first_floor_foldartal"] = roguelike3StartFloorFoldartal; + } + if (mode == 4 && theme == "Sami" && roguelike3NewSquad2StartingFoldartal && roguelike3NewSquad2StartingFoldartals.Length > 0) { taskParams["start_foldartal_list"] = new JArray(roguelike3NewSquad2StartingFoldartals.Trim().Split(';').Where(i => !string.IsNullOrEmpty(i)).Take(3)); diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml index 71b1ffb401..23929b73f7 100644 --- a/src/MaaWpfGui/Res/Localizations/en-us.xaml +++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml @@ -115,6 +115,7 @@ The agent entered「{0}」is not in battle_data. Check that the name entered is correct, or check the maa resource version. Repeat for「Starting Operator」Elite 2 Only Repeat for「Starting Operator」Elite 2, No Battle + Repeat for foldartal foreseed first floor,No Battle Select 「Starting Operator」 from support unit list @@ -606,7 +607,7 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla Drops recognition error Abort upload to Penguin Statistics No bonus stage, stopped - Operators of the following operator groups are missing: + Operators of the following operator groups are missing: Stage Queue: Unable to use PRTS Mission started @@ -639,6 +640,7 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla Node: Emergency Operation Node: Dreadful Foe Event: + FoldartalForesee: Invested {1}(+{0}), deposit: {2} Roguelike Settlement: {0}\nExplore: {1} Floor {2} Step\nCombat: {3} / {4} Emergency / {5} BOSS\nRecruit: {6}\nCollectibles: {7}\nDifficulty: {8}\nScore: {9}\nExp: {10}, Skill: {11} Current times diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index 5c0d728077..43ecc7ca30 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -115,8 +115,9 @@ 入力のスタッフ「{0}」がbattle_dataにありません。入力の名前が正しいか、maaリソースのバージョンをチェックしてください。 「最初のオペレーター」直接昇進 指定オペレーターの昇進招集までリセマラし、戦闘を行わない + 凹第一層遠見暗号文板、戦闘を行わない 生活重視分隊で開始、指定された啓示板を取得する - 最大3つ書き込み、半角セミコロン;で区切る + 最大3つ書き込み、半角セミコロン;で区切る 「最初のオペレーター」をサポートから選択 フレンド以外のサポートの使用を許可 戦闘終了まえに「停止」を遅らせる @@ -639,6 +640,7 @@ Bilibili: ログイン インターフェイスに表示されるアカウント ステージ: 緊急作戦 ステージ: 悪路凶敵 イベント: + 予見暗号文板: 投資しました: {1}(+{0})、デポジット: {2} ローグライク決済: {0}\n探検する: {1} 床 {2} ステップ\n戦闘: {3} / {4} 緊急 / {5} BOSS\nリクルート: {6}\nコレクション: {7}\n困難: {8}\nスコア: {9}\n経験値: {10}, スキル: {11} 現在の回数 diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml index d48ef02ae1..c6be0d3940 100644 --- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml +++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml @@ -115,6 +115,7 @@ 입력한 오퍼레이터 「{0}」는 battle_data에 없습니다. 입력한 이름이 올바른지 확인하거나 MAA 리소스 버전을 확인하세요. 시작 오퍼레이터 2정예화까지 반복 시작 오퍼레이터 2정예화까지 반복(전투 X) + 오목 1 층 원견 밀문판(전투 X) 생존지상 분대 목표 암호판 설정 최대 3개까지 지원하며 ";"로 구분합니다 시작 오퍼레이터로 지원 유닛 사용 @@ -639,6 +640,7 @@ Bilibili: 로그인 인터페이스에 표시되는 계정 이름(예: 장산) 레벨: 긴급 작전 레벨: 험난한 길 이벤트: + 예견 밀문판: 각뿔 투자함: {1}(+{0}), 예금: {2} 로그라이크 종착점: {0}\n클리어 : {1} 구역 {2} 노드\n전투 횟수: {3} 일반 / {4} 정예 / {5} 리더\n모집 횟수 : {6} 회\n수집: {7}\n난이도: {8}\n점수: {9}\n경험치: {10}, 스킬: {11} 현재 횟수 diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml index fe98bfd474..638f8d17f0 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml @@ -115,6 +115,7 @@ 输入的干员「{0}」未在 battle_data 中,请检查输入的名称是否正确,或检查 maa 资源版本。 凹「开局干员」直升精二 只凹「开局干员」直升精二,不进行作战 + 凹第一层远见密文板,不进行作战 生活队凹开局密文板 最多写三个,并用英文分号;隔开 「开局干员」使用助战 @@ -639,6 +640,7 @@ 关卡: 紧急作战 关卡: 险路恶敌 事件: + 预见密文板: 已投资 {1}(+{0}), 存款: {2} 肉鸽结算: {0}\n探索: {1} 层 {2} 步\n战斗: {3}/{4} 紧急/{5} BOSS\n招募: {6} 收藏品: {7}\n难度: {8} 得分: {9}\nExp: {10} Skill: {11} 当前次数 diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml index 1f7ab080b8..2895659d28 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml @@ -115,6 +115,7 @@ 輸入的幹員「{0}」未在 battle_data 中,請檢查輸入的名稱是否正確,或檢查 maa 資源版本。 凹「開局幹員」直升精二 只凹「開局幹員」直升精二,不進行作戰 + 凹第一層遠見密文板,不進行作戰 生活隊凹開局密文板 最多寫三個,並用英文分號;隔開 「開局幹員」使用助戰 @@ -637,6 +638,7 @@ 關卡: 緊急作戰 關卡: 險路惡敵 事件: + 預見密文板: 已投資 {1}(+{0}), 存款: {2} 肉鴿結算: {0}\n探索: {1} 层 {2} 步\n戰鬥: {3}/{4} 緊急/{5} BOSS\n招募: {6} 收藏品: {7}\n難度: {8} 得分: {9}\nExp: {10} Skill: {11} 目前次數 diff --git a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs index aa35115483..bb86914822 100644 --- a/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/SettingsViewModel.cs @@ -1929,6 +1929,33 @@ namespace MaaWpfGui.ViewModels.UI } } + private string _roguelike3FirstFloorFoldartal = ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3FirstFloorFoldartal, false.ToString()); + + /// + /// Gets or sets a value indicating whether core char need start with elite two. + /// + public bool Roguelike3FirstFloorFoldartal + { + get => bool.Parse(_roguelike3FirstFloorFoldartal); + set + { + SetAndNotify(ref _roguelike3FirstFloorFoldartal, value.ToString()); + ConfigurationHelper.SetValue(ConfigurationKeys.Roguelike3FirstFloorFoldartal, value.ToString()); + } + } + + private string _roguelike3StartFloorFoldartal = ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3StartFloorFoldartal, string.Empty); + + public string Roguelike3StartFloorFoldartal + { + get => _roguelike3StartFloorFoldartal; + set + { + SetAndNotify(ref _roguelike3StartFloorFoldartal, value); + ConfigurationHelper.SetValue(ConfigurationKeys.Roguelike3StartFloorFoldartal, value); + } + } + private string _roguelike3NewSquad2StartingFoldartal = ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3NewSquad2StartingFoldartal, false.ToString()); /// diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 912b4545ce..8f15a7d00d 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -1393,7 +1393,9 @@ namespace MaaWpfGui.ViewModels.UI mode, Instances.SettingsViewModel.RoguelikeStartsCount, Instances.SettingsViewModel.RoguelikeInvestmentEnabled, Instances.SettingsViewModel.RoguelikeInvestmentEnterSecondFloor, Instances.SettingsViewModel.RoguelikeInvestsCount, Instances.SettingsViewModel.RoguelikeStopWhenInvestmentFull, Instances.SettingsViewModel.RoguelikeSquad, Instances.SettingsViewModel.RoguelikeRoles, DataHelper.GetCharacterByNameOrAlias(Instances.SettingsViewModel.RoguelikeCoreChar)?.Name ?? Instances.SettingsViewModel.RoguelikeCoreChar, - Instances.SettingsViewModel.RoguelikeStartWithEliteTwo, Instances.SettingsViewModel.RoguelikeOnlyStartWithEliteTwo, Instances.SettingsViewModel.Roguelike3NewSquad2StartingFoldartal, Instances.SettingsViewModel.Roguelike3NewSquad2StartingFoldartals, + Instances.SettingsViewModel.RoguelikeStartWithEliteTwo, Instances.SettingsViewModel.RoguelikeOnlyStartWithEliteTwo, + Instances.SettingsViewModel.Roguelike3FirstFloorFoldartal, Instances.SettingsViewModel.Roguelike3StartFloorFoldartal, + Instances.SettingsViewModel.Roguelike3NewSquad2StartingFoldartal, Instances.SettingsViewModel.Roguelike3NewSquad2StartingFoldartals, Instances.SettingsViewModel.RoguelikeUseSupportUnit, Instances.SettingsViewModel.RoguelikeEnableNonfriendSupport, Instances.SettingsViewModel.RoguelikeTheme, Instances.SettingsViewModel.RoguelikeRefreshTraderWithDice); } diff --git a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml index 0f7005f62e..c155a0c3c6 100644 --- a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml @@ -139,6 +139,20 @@ TextWrapping="Wrap" /> + + + +