using System; using System.Collections.Generic; using System.Linq; using Newtonsoft.Json; namespace BetterGenshinImpact.GameTask.FarmingPlan; /// /// 表示每日锄地统计数据 /// public class DailyFarmingData { /// /// 当日累计普通怪物总数 /// [JsonProperty("total_normal_mob_count")] public double TotalNormalMobCount { get; set; } = 0; /// /// 当日累计精英怪物总数 /// [JsonProperty("total_elite_mob_count")] public double TotalEliteMobCount { get; set; } = 0; /// /// 当日所有锄地记录 /// [JsonProperty("records")] public List Records { get; set; } = new List(); [JsonIgnore] public string FilePath { get; set; } =""; /// /// 当日米游社小怪上限统计 /// [JsonProperty("miyoushe_total_normal_mob_count")] public double MiyousheTotalNormalMobCount { get; set; } = 0; /// /// 当日米游社精英上限统计 /// [JsonProperty("miyoushe_total_elite_mob_count")] public double MiyousheTotalEliteMobCount { get; set; } = 0; /// /// 米游社数据最后更新时间(尝试更新时间) /// [JsonProperty("last_miyoushe_update_time")] public DateTime LastMiyousheUpdateTime { get; set; } = DateTime.MinValue; /// /// 札记数据最后更新时间(札记数据种记录的最后一条记录数据) /// [JsonProperty("travels_diary_detail_manager_update_time")] public DateTime TravelsDiaryDetailManagerUpdateTime { get; set; } = DateTime.MinValue; public bool EnableMiyousheStats() { return MiyousheTotalEliteMobCount + MiyousheTotalNormalMobCount > 0; } public (double TotalEliteMobCount, double TotalNormalMobCount) getFinalTotalMobCount() { if (MiyousheTotalEliteMobCount + MiyousheTotalNormalMobCount > 0) { //累计米游社数据 //拿出超过札记统计的时间 List tdrs = Records.Where(r => r.Timestamp > TravelsDiaryDetailManagerUpdateTime).ToList(); double sumEliteMobCount = tdrs.Sum(t => t.EliteMobCount); double sumNormalMobCount = tdrs.Sum(t => t.NormalMobCount); var totalEliteMobCount = MiyousheTotalEliteMobCount+sumEliteMobCount; var totalNormalMobCount = MiyousheTotalNormalMobCount+sumNormalMobCount; FarmingStatsRecorder.debugInfo($"精英统计:{totalEliteMobCount} = {MiyousheTotalEliteMobCount}+{sumEliteMobCount}"); FarmingStatsRecorder.debugInfo($"小怪统计:{totalNormalMobCount} = {MiyousheTotalNormalMobCount}+{sumNormalMobCount}"); return (totalEliteMobCount,totalNormalMobCount); } return (TotalEliteMobCount, TotalNormalMobCount); } public (double DailyEliteCap, double DailyMobCap) getFinalCap() { var config = TaskContext.Instance().Config.OtherConfig.FarmingPlanConfig; var mysdCfg = config.MiyousheDataConfig; if (MiyousheTotalEliteMobCount + MiyousheTotalNormalMobCount > 0) { //上限切换成米游社配置里面的 return (mysdCfg.DailyEliteCap,mysdCfg.DailyMobCap); } return (config.DailyEliteCap,config.DailyMobCap); } }