mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-18 10:10:45 +08:00
feat: 任务设置Demo
This commit is contained in:
@@ -41,9 +41,21 @@
|
||||
</hc:ThemeResources.ThemeDictionaries>
|
||||
</hc:ThemeResources>
|
||||
<hc:Theme />
|
||||
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
<!-- A Style that affects all TextBlocks -->
|
||||
<Style BasedOn="{StaticResource TextBlockDefault}" TargetType="controls:TextBlock" />
|
||||
<Style
|
||||
x:Key="CustomListBoxItemStyle"
|
||||
BasedOn="{StaticResource ListBoxItemBaseStyle}"
|
||||
TargetType="ListBoxItem">
|
||||
<Setter Property="Padding" Value="10,0,0,0" />
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsSelected" Value="true">
|
||||
<Setter Property="Background" Value="{DynamicResource RegionBrush}" />
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Hyperlink">
|
||||
<EventSetter Event="Click" Handler="Hyperlink_Click" />
|
||||
|
||||
77
src/MaaWpfGui/Models/TaskSettingVisibilityInfo.cs
Normal file
77
src/MaaWpfGui/Models/TaskSettingVisibilityInfo.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
// <copyright file="TaskSettingVisibilityInfo.cs" company="MaaAssistantArknights">
|
||||
// MaaWpfGui - A part of the MaaCoreArknights project
|
||||
// Copyright (C) 2021 MistEO and Contributors
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY
|
||||
// </copyright>
|
||||
|
||||
using Stylet;
|
||||
|
||||
namespace MaaWpfGui.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// The task setting visibility info.
|
||||
/// </summary>
|
||||
public class TaskSettingVisibilityInfo : PropertyChangedBase
|
||||
{
|
||||
public const string DefaultVisibleTaskSetting = "Combat";
|
||||
|
||||
private bool _wakeUp;
|
||||
private bool _recruiting;
|
||||
private bool _base;
|
||||
private bool _combat;
|
||||
private bool _mall;
|
||||
private bool _mission;
|
||||
private bool _autoRoguelike;
|
||||
|
||||
public bool WakeUp { get => _wakeUp; set => SetAndNotify(ref _wakeUp, value); }
|
||||
|
||||
public bool Recruiting { get => _recruiting; set => SetAndNotify(ref _recruiting, value); }
|
||||
|
||||
public bool Base { get => _base; set => SetAndNotify(ref _base, value); }
|
||||
|
||||
public bool Combat { get => _combat; set => SetAndNotify(ref _combat, value); }
|
||||
|
||||
public bool Mall { get => _mall; set => SetAndNotify(ref _mall, value); }
|
||||
|
||||
public bool Mission { get => _mission; set => SetAndNotify(ref _mission, value); }
|
||||
|
||||
public bool AutoRoguelike { get => _autoRoguelike; set => SetAndNotify(ref _autoRoguelike, value); }
|
||||
|
||||
public static TaskSettingVisibilityInfo Current { get; } = new TaskSettingVisibilityInfo();
|
||||
|
||||
public void Set(string taskName, bool enable)
|
||||
{
|
||||
switch (taskName)
|
||||
{
|
||||
case "WakeUp":
|
||||
WakeUp = enable;
|
||||
break;
|
||||
case "Recruiting":
|
||||
Recruiting = enable;
|
||||
break;
|
||||
case "Base":
|
||||
Base = enable;
|
||||
break;
|
||||
case "Combat":
|
||||
Combat = enable;
|
||||
break;
|
||||
case "Mall":
|
||||
Mall = enable;
|
||||
break;
|
||||
case "Mission":
|
||||
Mission = enable;
|
||||
break;
|
||||
case "AutoRoguelike":
|
||||
AutoRoguelike = enable;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
using System;
|
||||
using MaaWpfGui.Helper;
|
||||
using MaaWpfGui.Models;
|
||||
using Stylet;
|
||||
|
||||
namespace MaaWpfGui.ViewModels
|
||||
@@ -121,5 +122,20 @@ namespace MaaWpfGui.ViewModels
|
||||
get => _runStatus;
|
||||
set => SetAndNotify(ref _runStatus, value);
|
||||
}
|
||||
|
||||
private bool _enableSetting;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether gets or sets whether the setting enabled.
|
||||
/// </summary>
|
||||
public bool EnableSetting
|
||||
{
|
||||
get => _enableSetting;
|
||||
set
|
||||
{
|
||||
SetAndNotify(ref _enableSetting, value);
|
||||
TaskSettingVisibilityInfo.Current.Set(OriginalName, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ using MaaWpfGui.Constants;
|
||||
using MaaWpfGui.Extensions;
|
||||
using MaaWpfGui.Helper;
|
||||
using MaaWpfGui.Main;
|
||||
using MaaWpfGui.Models;
|
||||
using MaaWpfGui.Services;
|
||||
using MaaWpfGui.Utilities.ValueType;
|
||||
using Newtonsoft.Json;
|
||||
@@ -54,6 +55,11 @@ namespace MaaWpfGui.ViewModels.UI
|
||||
/// </summary>
|
||||
public ObservableCollection<DragItemViewModel> TaskItemViewModels { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the visibility of task setting views.
|
||||
/// </summary>
|
||||
public TaskSettingVisibilityInfo TaskSettingVisibilities { get; } = TaskSettingVisibilityInfo.Current;
|
||||
|
||||
/// <summary>
|
||||
/// 实时更新任务顺序
|
||||
/// </summary>
|
||||
@@ -261,6 +267,11 @@ namespace MaaWpfGui.ViewModels.UI
|
||||
|
||||
var vm = new DragItemViewModel(LocalizationHelper.GetString(task), task, "TaskQueue.");
|
||||
|
||||
if (task == TaskSettingVisibilityInfo.DefaultVisibleTaskSetting)
|
||||
{
|
||||
vm.EnableSetting = true;
|
||||
}
|
||||
|
||||
if (!parsed || order < 0 || order >= temp_order_list.Count)
|
||||
{
|
||||
non_order_list.Add(vm);
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
dd:DragDrop.IsDragSource="{Binding Idle}"
|
||||
dd:DragDrop.IsDropTarget="{Binding Idle}"
|
||||
BorderThickness="0"
|
||||
ItemContainerStyle="{StaticResource CustomListBoxItemStyle}"
|
||||
ItemsSource="{Binding Path=TaskItemViewModels}"
|
||||
SelectionChanged="{s:Action TaskItemSelectionChanged}"
|
||||
ToolTip="{DynamicResource LabelSequenceTip}">
|
||||
@@ -68,9 +69,21 @@
|
||||
<!--<maa:TextBlock Text="{Binding ID}" />
|
||||
<maa:TextBlock Text=". " />-->
|
||||
<CheckBox
|
||||
Width="155"
|
||||
Content="{Binding Name}"
|
||||
IsChecked="{Binding IsChecked}"
|
||||
IsHitTestVisible="{Binding ElementName=TaskList, Path=DataContext.Idle}" />
|
||||
<RadioButton
|
||||
Margin="0"
|
||||
Padding="0"
|
||||
hc:IconElement.Geometry="{StaticResource ConfigGeometry}"
|
||||
hc:VisualElement.HighlightForeground="{DynamicResource PrimaryBrush}"
|
||||
Background="Transparent"
|
||||
BorderThickness="0"
|
||||
Foreground="{DynamicResource SecondaryTextBrush}"
|
||||
GroupName="TaskSetting"
|
||||
IsChecked="{Binding EnableSetting}"
|
||||
Style="{DynamicResource RadioGroupItemSingle}" />
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
@@ -176,17 +189,31 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<userControl:FightSettingsUserControl
|
||||
<hc:ScrollViewer
|
||||
Grid.Row="0"
|
||||
Margin="10"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Top" />
|
||||
VerticalAlignment="Top"
|
||||
HorizontalScrollBarVisibility="Auto"
|
||||
IsInertiaEnabled="True"
|
||||
VerticalScrollBarVisibility="Auto">
|
||||
<hc:SimpleStackPanel>
|
||||
<userControl:ConnectSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.WakeUp}" />
|
||||
<userControl:AutoRecruitSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.Recruiting}" />
|
||||
<userControl:InfrastSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.Base}" />
|
||||
<userControl:MallSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.Mall}" />
|
||||
<userControl:FightSettingsUserControl Visibility="{c:Binding TaskSettingVisibilities.Combat}" />
|
||||
<userControl:RoguelikeSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.Mission}" />
|
||||
<userControl:RoguelikeSettingsUserControl IsEnabled="{Binding Idle}" Visibility="{c:Binding TaskSettingVisibilities.AutoRoguelike}" />
|
||||
</hc:SimpleStackPanel>
|
||||
</hc:ScrollViewer>
|
||||
<hc:ScrollViewer
|
||||
Grid.Row="1"
|
||||
Width="200"
|
||||
Margin="10"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom">
|
||||
VerticalAlignment="Bottom"
|
||||
IsInertiaEnabled="True">
|
||||
<controls:TextBlock Text="{Binding StagesOfToday}" />
|
||||
</hc:ScrollViewer>
|
||||
</Grid>
|
||||
|
||||
Reference in New Issue
Block a user