mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-20 02:55:38 +08:00
rft: Wpf肉鸽任务界面主题参数调整
This commit is contained in:
@@ -1847,7 +1847,7 @@ namespace MaaWpfGui.ViewModels.UI
|
||||
RoguelikeTask.RoguelikeExpectedCollapsalParadigms,
|
||||
RoguelikeTask.RoguelikeUseSupportUnit,
|
||||
RoguelikeTask.RoguelikeEnableNonfriendSupport,
|
||||
RoguelikeTask.RoguelikeTheme,
|
||||
RoguelikeTask.RoguelikeTheme.ToString(),
|
||||
RoguelikeTask.RoguelikeRefreshTraderWithDice,
|
||||
RoguelikeTask.RoguelikeStopAtFinalBoss,
|
||||
RoguelikeTask.RoguelikeMonthlySquadAutoIterate,
|
||||
|
||||
@@ -24,7 +24,7 @@ using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
|
||||
|
||||
using Theme = RoguelikeTheme;
|
||||
public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
{
|
||||
static RoguelikeSettingsUserControlModel()
|
||||
@@ -64,19 +64,18 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
RoguelikeModeList =
|
||||
[
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeStrategyExp"), Value = "0" },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeStrategyGold"), Value = "1" },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeStrategyGold"), Value = "1" },
|
||||
|
||||
// new CombData { Display = "两者兼顾,投资过后退出", Value = "2" } // 弃用
|
||||
// new CombData { Display = Localization.GetString("3"), Value = "3" }, // 开发中
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeStrategyLastReward"), Value = "4" },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeStrategyMonthlySquad"), Value = "6" },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeStrategyDeepExploration"), Value = "7" },
|
||||
];
|
||||
// new CombData { Display = "两者兼顾,投资过后退出", Value = "2" } // 弃用
|
||||
// new CombData { Display = Localization.GetString("3"), Value = "3" }, // 开发中
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeStrategyLastReward"), Value = "4" },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeStrategyMonthlySquad"), Value = "6" },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeStrategyDeepExploration"), Value = "7" },
|
||||
];
|
||||
|
||||
switch (RoguelikeTheme)
|
||||
{
|
||||
case "Sami":
|
||||
|
||||
case Theme.Sami:
|
||||
RoguelikeModeList.Add(new() { Display = LocalizationHelper.GetString("RoguelikeStrategyCollapse"), Value = "5" });
|
||||
|
||||
break;
|
||||
@@ -90,53 +89,53 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
["Phantom_Default"] =
|
||||
[
|
||||
("ResearchSquad", "研究分队"),
|
||||
],
|
||||
],
|
||||
["Mizuki_Default"] =
|
||||
[
|
||||
("IS2NewSquad1", "心胜于物分队"),
|
||||
("IS2NewSquad2", "物尽其用分队"),
|
||||
("IS2NewSquad3", "以人为本分队"),
|
||||
("ResearchSquad", "研究分队"),
|
||||
],
|
||||
("IS2NewSquad2", "物尽其用分队"),
|
||||
("IS2NewSquad3", "以人为本分队"),
|
||||
("ResearchSquad", "研究分队"),
|
||||
],
|
||||
["Sami_Default"] =
|
||||
[
|
||||
("IS3NewSquad1", "永恒狩猎分队"),
|
||||
("IS3NewSquad2", "生活至上分队"),
|
||||
("IS3NewSquad3", "科学主义分队"),
|
||||
("IS3NewSquad4", "特训分队"),
|
||||
],
|
||||
("IS3NewSquad2", "生活至上分队"),
|
||||
("IS3NewSquad3", "科学主义分队"),
|
||||
("IS3NewSquad4", "特训分队"),
|
||||
],
|
||||
["Sarkaz_1"] =
|
||||
[
|
||||
("IS4NewSquad2", "博闻广记分队"),
|
||||
("IS4NewSquad3", "蓝图测绘分队"),
|
||||
("IS4NewSquad6", "点刺成锭分队"),
|
||||
("IS4NewSquad7", "拟态学者分队"),
|
||||
],
|
||||
("IS4NewSquad3", "蓝图测绘分队"),
|
||||
("IS4NewSquad6", "点刺成锭分队"),
|
||||
("IS4NewSquad7", "拟态学者分队"),
|
||||
],
|
||||
["Sarkaz_Default"] =
|
||||
[
|
||||
("IS4NewSquad1", "魂灵护送分队"),
|
||||
("IS4NewSquad2", "博闻广记分队"),
|
||||
("IS4NewSquad3", "蓝图测绘分队"),
|
||||
("IS4NewSquad4", "因地制宜分队"),
|
||||
("IS4NewSquad5", "异想天开分队"),
|
||||
("IS4NewSquad6", "点刺成锭分队"),
|
||||
("IS4NewSquad7", "拟态学者分队"),
|
||||
],
|
||||
("IS4NewSquad2", "博闻广记分队"),
|
||||
("IS4NewSquad3", "蓝图测绘分队"),
|
||||
("IS4NewSquad4", "因地制宜分队"),
|
||||
("IS4NewSquad5", "异想天开分队"),
|
||||
("IS4NewSquad6", "点刺成锭分队"),
|
||||
("IS4NewSquad7", "拟态学者分队"),
|
||||
],
|
||||
};
|
||||
|
||||
// 通用分队
|
||||
private readonly List<(string Key, string Value)> _commonSquads =
|
||||
[
|
||||
("LeaderSquad", "指挥分队"),
|
||||
("GatheringSquad", "集群分队"),
|
||||
("SupportSquad", "后勤分队"),
|
||||
("SpearheadSquad", "矛头分队"),
|
||||
("TacticalAssaultOperative", "突击战术分队"),
|
||||
("TacticalFortificationOperative", "堡垒战术分队"),
|
||||
("TacticalRangedOperative", "远程战术分队"),
|
||||
("TacticalDestructionOperative", "破坏战术分队"),
|
||||
("First-ClassSquad", "高规格分队"),
|
||||
];
|
||||
("GatheringSquad", "集群分队"),
|
||||
("SupportSquad", "后勤分队"),
|
||||
("SpearheadSquad", "矛头分队"),
|
||||
("TacticalAssaultOperative", "突击战术分队"),
|
||||
("TacticalFortificationOperative", "堡垒战术分队"),
|
||||
("TacticalRangedOperative", "远程战术分队"),
|
||||
("TacticalDestructionOperative", "破坏战术分队"),
|
||||
("First-ClassSquad", "高规格分队"),
|
||||
];
|
||||
|
||||
private void UpdateRoguelikeSquadList()
|
||||
{
|
||||
@@ -226,17 +225,6 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
RoguelikeCoreCharList = roguelikeCoreCharList;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of roguelike lists.
|
||||
/// </summary>
|
||||
public List<CombinedData> RoguelikeThemeList { get; } =
|
||||
[
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeThemePhantom"), Value = "Phantom" },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeThemeMizuki"), Value = "Mizuki" },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeThemeSami"), Value = "Sami" },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeThemeSarkaz"), Value = "Sarkaz" },
|
||||
];
|
||||
|
||||
private ObservableCollection<GenericCombinedData<int>> _roguelikeDifficultyList = [];
|
||||
|
||||
public ObservableCollection<GenericCombinedData<int>> RoguelikeDifficultyList
|
||||
@@ -273,25 +261,36 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
public List<CombinedData> RoguelikeRolesList { get; } =
|
||||
[
|
||||
new() { Display = LocalizationHelper.GetString("DefaultRoles"), Value = string.Empty },
|
||||
new() { Display = LocalizationHelper.GetString("FirstMoveAdvantage"), Value = "先手必胜" },
|
||||
new() { Display = LocalizationHelper.GetString("SlowAndSteadyWinsTheRace"), Value = "稳扎稳打" },
|
||||
new() { Display = LocalizationHelper.GetString("OvercomingYourWeaknesses"), Value = "取长补短" },
|
||||
new() { Display = LocalizationHelper.GetString("AsYourHeartDesires"), Value = "随心所欲" },
|
||||
];
|
||||
new() { Display = LocalizationHelper.GetString("FirstMoveAdvantage"), Value = "先手必胜" },
|
||||
new() { Display = LocalizationHelper.GetString("SlowAndSteadyWinsTheRace"), Value = "稳扎稳打" },
|
||||
new() { Display = LocalizationHelper.GetString("OvercomingYourWeaknesses"), Value = "取长补短" },
|
||||
new() { Display = LocalizationHelper.GetString("AsYourHeartDesires"), Value = "随心所欲" },
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of roguelike lists.
|
||||
/// </summary>
|
||||
public List<GenericCombinedData<Theme>> RoguelikeThemeList { get; } =
|
||||
[
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeThemePhantom"), Value = Theme.Phantom },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeThemeMizuki"), Value = Theme.Mizuki },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeThemeSami"), Value = Theme.Sami },
|
||||
new() { Display = LocalizationHelper.GetString("RoguelikeThemeSarkaz"), Value = Theme.Sarkaz },
|
||||
];
|
||||
|
||||
// public List<CombData> RoguelikeCoreCharList { get; set; }
|
||||
private string _roguelikeTheme = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeTheme, "Sarkaz");
|
||||
private Theme _roguelikeTheme = Enum.TryParse(ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeTheme, Theme.Sarkaz.ToString()), out Theme outTheme) ? outTheme : Theme.Sarkaz;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Roguelike theme.
|
||||
/// </summary>
|
||||
public string RoguelikeTheme
|
||||
public Theme RoguelikeTheme
|
||||
{
|
||||
get => _roguelikeTheme;
|
||||
set
|
||||
{
|
||||
SetAndNotify(ref _roguelikeTheme, value);
|
||||
ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeTheme, value);
|
||||
ConfigurationHelper.SetValue(ConfigurationKeys.RoguelikeTheme, value.ToString());
|
||||
|
||||
UpdateRoguelikeModeList();
|
||||
UpdateRoguelikeSquadList();
|
||||
@@ -365,12 +364,12 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
|
||||
public bool RoguelikeSquadIsProfessional =>
|
||||
RoguelikeMode == "4" &&
|
||||
RoguelikeTheme != "Phantom" &&
|
||||
RoguelikeTheme != Theme.Phantom &&
|
||||
RoguelikeSquad is "突击战术分队" or "堡垒战术分队" or "远程战术分队" or "破坏战术分队";
|
||||
|
||||
public bool RoguelikeSquadIsFoldartal =>
|
||||
RoguelikeMode == "4" &&
|
||||
RoguelikeTheme == "Sami" &&
|
||||
RoguelikeTheme == Theme.Sami &&
|
||||
RoguelikeSquad == "生活至上分队";
|
||||
|
||||
private string _roguelikeRoles = ConfigurationHelper.GetValue(ConfigurationKeys.RoguelikeRoles, string.Empty);
|
||||
@@ -529,7 +528,7 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether core char need start with elite two.
|
||||
/// </summary>
|
||||
public bool Roguelike3FirstFloorFoldartal => _roguelike3FirstFloorFoldartal && RoguelikeMode == "4" && RoguelikeTheme == "Sami";
|
||||
public bool Roguelike3FirstFloorFoldartal => _roguelike3FirstFloorFoldartal && RoguelikeMode == "4" && RoguelikeTheme == Theme.Sami;
|
||||
|
||||
private string _roguelike3StartFloorFoldartal = ConfigurationHelper.GetValue(ConfigurationKeys.Roguelike3StartFloorFoldartal, string.Empty);
|
||||
|
||||
@@ -705,7 +704,7 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
|
||||
public bool RoguelikeRefreshTraderWithDice
|
||||
{
|
||||
get => _roguelikeRefreshTraderWithDice && RoguelikeTheme == "Mizuki";
|
||||
get => _roguelikeRefreshTraderWithDice && RoguelikeTheme == Theme.Mizuki;
|
||||
set
|
||||
{
|
||||
SetAndNotify(ref _roguelikeRefreshTraderWithDice, value);
|
||||
@@ -833,5 +832,28 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public bool RoguelikeStartWithSeed => _roguelikeStartWithSeedRaw && RoguelikeTheme == "Sarkaz" && RoguelikeMode == "1" && RoguelikeSquad is "点刺成锭分队" or "后勤分队";
|
||||
public bool RoguelikeStartWithSeed => _roguelikeStartWithSeedRaw && RoguelikeTheme == Theme.Sarkaz && RoguelikeMode == "1" && RoguelikeSquad is "点刺成锭分队" or "后勤分队";
|
||||
}
|
||||
|
||||
public enum RoguelikeTheme
|
||||
{
|
||||
/// <summary>
|
||||
/// 傀影
|
||||
/// </summary>
|
||||
Phantom,
|
||||
|
||||
/// <summary>
|
||||
/// 水月
|
||||
/// </summary>
|
||||
Mizuki,
|
||||
|
||||
/// <summary>
|
||||
/// 萨米
|
||||
/// </summary>
|
||||
Sami,
|
||||
|
||||
/// <summary>
|
||||
/// 萨卡兹
|
||||
/// </summary>
|
||||
Sarkaz,
|
||||
}
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:s="https://github.com/canton7/Stylet"
|
||||
xmlns:setting="clr-namespace:MaaWpfGui.ViewModels.UI"
|
||||
xmlns:taskQueue="clr-namespace:MaaWpfGui.ViewModels.UserControl.TaskQueue"
|
||||
xmlns:task="clr-namespace:MaaWpfGui.ViewModels.UserControl.TaskQueue"
|
||||
d:Background="White"
|
||||
d:DataContext="{d:DesignInstance {x:Type taskQueue:RoguelikeSettingsUserControlModel}}"
|
||||
d:DataContext="{d:DesignInstance {x:Type task:RoguelikeSettingsUserControlModel}}"
|
||||
d:DesignWidth="220"
|
||||
s:View.ActionTarget="{Binding}"
|
||||
mc:Ignorable="d">
|
||||
@@ -22,6 +22,7 @@
|
||||
<hc:ComboBox
|
||||
Margin="0,5"
|
||||
hc:InfoElement.Title="{DynamicResource RoguelikeTheme}"
|
||||
DisplayMemberPath="Display"
|
||||
IsHitTestVisible="{Binding Idle, Source={x:Static setting:TaskQueueViewModel.TaskSettingDataContext}}"
|
||||
ItemsSource="{Binding RoguelikeThemeList}"
|
||||
SelectedValue="{Binding RoguelikeTheme}"
|
||||
@@ -35,7 +36,7 @@
|
||||
ScrollViewer.CanContentScroll="False"
|
||||
SelectedValue="{Binding RoguelikeDifficulty}"
|
||||
SelectedValuePath="Value"
|
||||
Visibility="{c:Binding 'RoguelikeTheme != "Phantom"'}" />
|
||||
Visibility="{c:Binding 'RoguelikeTheme != task:RoguelikeTheme.Phantom'}" />
|
||||
<hc:ComboBox
|
||||
Margin="0,5"
|
||||
hc:InfoElement.Title="{DynamicResource Strategy}"
|
||||
@@ -148,11 +149,11 @@
|
||||
Margin="0,10"
|
||||
Content="{DynamicResource RefreshTraderWithDice}"
|
||||
IsChecked="{Binding RoguelikeRefreshTraderWithDiceRaw}"
|
||||
Visibility="{c:Binding 'RoguelikeTheme == "Mizuki"'}" />
|
||||
Visibility="{c:Binding 'RoguelikeTheme == task:RoguelikeTheme.Mizuki'}" />
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
IsChecked="{Binding RoguelikeStartWithEliteTwoRaw}"
|
||||
Visibility="{c:Binding 'RoguelikeMode == "4" and RoguelikeTheme != "Phantom" and RoguelikeSquad == "突击战术分队" or RoguelikeSquad == "堡垒战术分队" or RoguelikeSquad == "远程战术分队" or RoguelikeSquad == "破坏战术分队"'}">
|
||||
Visibility="{c:Binding 'RoguelikeMode == "4" and RoguelikeTheme != task:RoguelikeTheme.Phantom and RoguelikeSquad == "突击战术分队" or RoguelikeSquad == "堡垒战术分队" or RoguelikeSquad == "远程战术分队" or RoguelikeSquad == "破坏战术分队"'}">
|
||||
<TextBlock
|
||||
Block.TextAlignment="Left"
|
||||
Text="{DynamicResource RoguelikeStartWithEliteTwo}"
|
||||
@@ -161,7 +162,7 @@
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
IsChecked="{Binding RoguelikeOnlyStartWithEliteTwoRaw}"
|
||||
Visibility="{c:Binding 'RoguelikeStartWithEliteTwoRaw and RoguelikeMode == "4" and RoguelikeTheme != "Phantom"'}">
|
||||
Visibility="{c:Binding 'RoguelikeStartWithEliteTwoRaw and RoguelikeMode == "4" and RoguelikeTheme != task:RoguelikeTheme.Phantom'}">
|
||||
<TextBlock
|
||||
Block.TextAlignment="Left"
|
||||
Text="{DynamicResource RoguelikeOnlyStartWithEliteTwo}"
|
||||
@@ -179,7 +180,7 @@
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
IsChecked="{Binding Roguelike3FirstFloorFoldartalRaw}"
|
||||
Visibility="{c:Binding 'RoguelikeMode == "4" and RoguelikeTheme == "Sami" '}">
|
||||
Visibility="{c:Binding 'RoguelikeMode == "4" and RoguelikeTheme == task:RoguelikeTheme.Sami'}">
|
||||
<TextBlock
|
||||
Block.TextAlignment="Left"
|
||||
Text="{DynamicResource Roguelike3FirstFloorFoldartal}"
|
||||
@@ -190,11 +191,11 @@
|
||||
Source={x:Static setting:TaskQueueViewModel.TaskSettingDataContext}}"
|
||||
Style="{StaticResource TextBoxExtend}"
|
||||
Text="{Binding Roguelike3StartFloorFoldartal, UpdateSourceTrigger=LostFocus}"
|
||||
Visibility="{c:Binding 'Roguelike3FirstFloorFoldartalRaw and RoguelikeMode == "4" and RoguelikeTheme == "Sami" '}" />
|
||||
Visibility="{c:Binding 'Roguelike3FirstFloorFoldartalRaw and RoguelikeMode == "4" and RoguelikeTheme == task:RoguelikeTheme.Sami'}" />
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
IsChecked="{Binding Roguelike3NewSquad2StartingFoldartalRaw}"
|
||||
Visibility="{c:Binding 'RoguelikeMode == "4" and RoguelikeTheme == "Sami" and RoguelikeSquad == "生活至上分队" '}">
|
||||
Visibility="{c:Binding 'RoguelikeMode == "4" and RoguelikeTheme == task:RoguelikeTheme.Sami and RoguelikeSquad == "生活至上分队" '}">
|
||||
<TextBlock
|
||||
Block.TextAlignment="Left"
|
||||
Text="{DynamicResource Roguelike3NewSquad2StartingFoldartal}"
|
||||
@@ -205,7 +206,7 @@
|
||||
Source={x:Static setting:TaskQueueViewModel.TaskSettingDataContext}}"
|
||||
Text="{Binding Roguelike3NewSquad2StartingFoldartals, UpdateSourceTrigger=LostFocus}"
|
||||
ToolTip="{DynamicResource Roguelike3NewSquad2StartingFoldartalTip}"
|
||||
Visibility="{c:Binding 'Roguelike3NewSquad2StartingFoldartalRaw and RoguelikeMode == "4" and RoguelikeTheme == "Sami" and RoguelikeSquad == "生活至上分队" '}" />
|
||||
Visibility="{c:Binding 'Roguelike3NewSquad2StartingFoldartalRaw and RoguelikeMode == "4" and RoguelikeTheme == task:RoguelikeTheme.Sami and RoguelikeSquad == "生活至上分队" '}" />
|
||||
<hc:TextBox
|
||||
hc:InfoElement.Title="{DynamicResource RoguelikeCollapseList}"
|
||||
IsReadOnly="{c:Binding !Idle,
|
||||
@@ -276,7 +277,7 @@
|
||||
<CheckBox
|
||||
Margin="0,10"
|
||||
IsChecked="{Binding RoguelikeStartWithSeedRaw}"
|
||||
Visibility="{c:Binding 'RoguelikeMode == "1" and RoguelikeTheme == "Sarkaz" and (RoguelikeSquad == "点刺成锭分队" or RoguelikeSquad == "后勤分队")'}">
|
||||
Visibility="{c:Binding 'RoguelikeMode == "1" and RoguelikeTheme == task:RoguelikeTheme.Sarkaz and (RoguelikeSquad == "点刺成锭分队" or RoguelikeSquad == "后勤分队")'}">
|
||||
<TextBlock
|
||||
Block.TextAlignment="Left"
|
||||
Text="{DynamicResource RoguelikeStartWithSeed}"
|
||||
|
||||
Reference in New Issue
Block a user