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;
// 领取每日奖励的好感队伍名称
[ObservableProperty]
private string _dailyRewardPartyName = string.Empty;
// 合成浓缩后保留原粹树脂的数量
[ObservableProperty]
private int _minResinToKeep = 0;
// 领取每日奖励的好感数量
[ObservableProperty]
private string _sundayEverySelectedValue = "0";
// 领取每日奖励的好感数量
[ObservableProperty]
private string _sundaySelectedValue = "0";
// 尘歌壶传送方式,1. 地图传送 2. 尘歌壶道具
[ObservableProperty]
private string _sereniteaPotTpType = "地图传送";
// 尘歌壶洞天购买商品
[ObservableProperty]
private List _secretTreasureObjects = new();
#region 每周秘境配置
//周一
[ObservableProperty]
private string _mondayPartyName = string.Empty;
[ObservableProperty]
private string _mondayDomainName = string.Empty;
//周二
[ObservableProperty]
private string _tuesdayPartyName = string.Empty;
[ObservableProperty]
private string _tuesdayDomainName = string.Empty;
//周三
[ObservableProperty]
private string _wednesdayPartyName = string.Empty;
[ObservableProperty]
private string _wednesdayDomainName = string.Empty;
//周四
[ObservableProperty]
private string _thursdayPartyName = string.Empty;
[ObservableProperty]
private string _thursdayDomainName = string.Empty;
//周五
[ObservableProperty]
private string _fridayPartyName = string.Empty;
[ObservableProperty]
private string _fridayDomainName = string.Empty;
//周六
[ObservableProperty]
private string _saturdayPartyName = string.Empty;
[ObservableProperty]
private string _saturdayDomainName = string.Empty;
//周日
[ObservableProperty]
private string _sundayPartyName = string.Empty;
[ObservableProperty]
private string _sundayDomainName = string.Empty;
// 完成后操作
[ObservableProperty]
private string _completionAction = string.Empty;
// 通过当天(4点起始)是哪一天来返回配置
public (string partyName, string domainName, string sundaySelectedValue) GetDomainConfig()
{
if (WeeklyDomainEnabled)
{
var dayOfWeek = (DateTime.Now.Hour >= 4 ? DateTime.Today : DateTime.Today.AddDays(-1)).DayOfWeek;
return dayOfWeek switch
{
DayOfWeek.Monday => (MondayPartyName, MondayDomainName,SundaySelectedValue),
DayOfWeek.Tuesday => (TuesdayPartyName, TuesdayDomainName,SundaySelectedValue),
DayOfWeek.Wednesday => (WednesdayPartyName, WednesdayDomainName,SundaySelectedValue),
DayOfWeek.Thursday => (ThursdayPartyName, ThursdayDomainName,SundaySelectedValue),
DayOfWeek.Friday => (FridayPartyName, FridayDomainName,SundaySelectedValue),
DayOfWeek.Saturday => (SaturdayPartyName, SaturdayDomainName,SundaySelectedValue),
DayOfWeek.Sunday => (SundayPartyName, SundayDomainName,SundaySelectedValue),
_ => (PartyName, DomainName,SundaySelectedValue)
};
}
else
{
return (PartyName, DomainName,SundayEverySelectedValue);
}
}
#endregion
}