VPet/VPet-Simulator.Windows.Interface/Mod/ClickText.cs

89 lines
2.2 KiB
C#
Raw Normal View History

2023-08-11 02:48:17 +00:00
using LinePutScript.Converter;
using LinePutScript.Localization.WPF;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
2023-08-13 14:39:46 +00:00
using VPet_Simulator.Core;
using static VPet_Simulator.Core.Main;
2023-08-11 02:48:17 +00:00
namespace VPet_Simulator.Windows.Interface
{
/// <summary>
/// 点击桌宠时触发的乱说话
/// </summary>
public class ClickText : ICheckText
2023-08-11 17:16:53 +00:00
{
2023-08-13 14:39:46 +00:00
public ClickText()
{
}
public ClickText(string text)
{
Text = text;
}
2023-08-11 17:16:53 +00:00
/// <summary>
/// 指定干活时说, 空为任意, sleep 为睡觉时
/// </summary>
[Line(ignoreCase: true)]
public string Working { get; set; } = null;
2023-08-11 02:48:17 +00:00
2023-08-11 17:16:53 +00:00
/// <summary>
/// 日期区间
/// </summary>
[Flags]
public enum DayTime
2023-08-13 14:39:46 +00:00
{
2023-08-11 17:16:53 +00:00
Morning = 1,
Afternoon = 2,
Night = 4,
Midnight = 8,
}
/// <summary>
/// 当前时间
/// </summary>
[Line(ignoreCase: true)]
private int dayTime { get; set; } = 15;
/// <summary>
/// 日期区间
/// </summary>
public DayTime DaiTime
{
get => (DayTime)dayTime;
set => dayTime = (int)value;
}
2023-08-13 14:39:46 +00:00
/// <summary>
/// 工作状态
/// </summary>
[Line(IgnoreCase = true)]
public WorkingState State { get; set; } = WorkingState.Nomal;
2023-08-13 14:39:46 +00:00
/// <summary>
/// 检查部分状态是否满足需求
/// </summary>之所以不是全部的,是因为挨个取效率太差了
public override bool CheckState(Main m)
2023-08-13 14:39:46 +00:00
{
if (!base.CheckState(m))
2023-08-13 14:39:46 +00:00
return false;
2023-08-13 14:39:46 +00:00
if (string.IsNullOrWhiteSpace(Working))
{
if (State != m.State)
return false;
}
else
{
2023-08-13 16:31:37 +00:00
if (m.State != WorkingState.Work)
2023-08-13 14:39:46 +00:00
return false;
if (m.nowWork.Name != Working)
return false;
}
return true;
2023-08-11 02:48:17 +00:00
}
}
}