using LinePutScript.Converter; using LinePutScript.Localization.WPF; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using VPet_Simulator.Core; using static VPet_Simulator.Core.Main; namespace VPet_Simulator.Windows.Interface { /// /// 点击桌宠时触发的乱说话 /// public class ClickText { public ClickText() { } public ClickText(string text) { Text = text; } [Line(ignoreCase: true)] private int mode { get; set; } = 7; /// /// 需求状态模式 /// public ModeType Mode { get => (ModeType)mode; set => mode = (int)value; } /// /// 宠物状态模式 /// [Flags] public enum ModeType { /// /// 高兴 /// Happy = 1, /// /// 普通 /// Nomal = 2, /// /// 状态不佳 /// PoorCondition = 4, /// /// 生病(躺床) /// Ill = 8 } /// /// 指定干活时说, 空为任意, sleep 为睡觉时 /// [Line(ignoreCase: true)] public string Working { get; set; } = null; /// /// 日期区间 /// [Flags] public enum DayTime { Morning = 1, Afternoon = 2, Night = 4, Midnight = 8, } /// /// 当前时间 /// [Line(ignoreCase: true)] private int dayTime { get; set; } = 15; /// /// 日期区间 /// public DayTime DaiTime { get => (DayTime)dayTime; set => dayTime = (int)value; } /// /// 好感度要求:最小值 /// [Line(IgnoreCase = true)] public int LikeMin = 0; /// /// 好感度要求:最大值 /// [Line(IgnoreCase = true)] public int LikeMax = int.MaxValue; /// /// 工作状态 /// [Line(IgnoreCase = true)] public WorkingState State { get; set; } = WorkingState.Nomal; /// /// 说话的内容 /// [Line(IgnoreCase = true)] public string Text { get; set; } private string transText = null; /// /// 说话的内容 (翻译) /// public string TranslateText { get { if (transText == null) { transText = LocalizeCore.Translate(Text); } return transText; } set { transText = value; } } /// /// 检查部分状态是否满足需求 /// 之所以不是全部的,是因为挨个取效率太差了 public bool CheckState(Main m) { if (m.Core.Save.Likability < LikeMin || m.Core.Save.Likability > LikeMax) return false; if (string.IsNullOrWhiteSpace(Working)) { if (State != m.State) return false; } else { if (State != WorkingState.Work) return false; if (m.nowWork.Name != Working) return false; } return true; } } }