using System;
using System.Collections.Generic;
using CommunityToolkit.Mvvm.ComponentModel;
namespace BetterGenshinImpact.Core.Config;
[Serializable]
public partial class OneDragonFlowConfig : ObservableObject
{
// 配置名
[ObservableProperty]
private string _name = string.Empty;
///
/// 所有任务的开关状态
///
public Dictionary TaskEnabledList { get; set; } = new();
// 合成树脂的国家
[ObservableProperty]
private string _craftingBenchCountry = "枫丹";
// 冒险者协会的国家
[ObservableProperty]
private string _adventurersGuildCountry = "枫丹";
// 自动战斗配置的队伍名称
[ObservableProperty]
private string _partyName = string.Empty;
// 自动战斗配置的策略名称
[ObservableProperty]
private string _domainName = string.Empty;
[ObservableProperty]
private bool _weeklyDomainEnabled = false;
#region 每周秘境配置
[ObservableProperty]
private string _mondayThursdayPartyName = string.Empty;
[ObservableProperty]
private string _mondayThursdayDomainName = string.Empty;
[ObservableProperty]
private string _tuesdayFridayPartyName = string.Empty;
[ObservableProperty]
private string _tuesdayFridayDomainName = string.Empty;
[ObservableProperty]
private string _wednesdaySaturdayPartyName = string.Empty;
[ObservableProperty]
private string _wednesdaySaturdayDomainName = string.Empty;
[ObservableProperty]
private string _sundayPartyName = string.Empty;
[ObservableProperty]
private string _sundayDomainName = string.Empty;
// 通过当天是哪一天来返回配置
public (string partyName, string domainName) GetDomainConfig()
{
if (WeeklyDomainEnabled)
{
var dayOfWeek = DateTime.Now.DayOfWeek;
return dayOfWeek switch
{
DayOfWeek.Monday => (MondayThursdayPartyName, MondayThursdayDomainName),
DayOfWeek.Tuesday => (TuesdayFridayPartyName, TuesdayFridayDomainName),
DayOfWeek.Wednesday => (WednesdaySaturdayPartyName, WednesdaySaturdayDomainName),
DayOfWeek.Thursday => (MondayThursdayPartyName, MondayThursdayDomainName),
DayOfWeek.Friday => (TuesdayFridayPartyName, TuesdayFridayDomainName),
DayOfWeek.Saturday => (WednesdaySaturdayPartyName, WednesdaySaturdayDomainName),
DayOfWeek.Sunday => (SundayPartyName, SundayDomainName),
_ => (PartyName, DomainName)
};
}
else
{
return (PartyName, DomainName);
}
}
#endregion
}