Files
DanhengServer-OpenSource/Common/Data/Config/Task/PredicateTaskList.cs
Somebody 72ddae8940 [BREAK CHANGE] Feature: Implement the basic task system
- Support for the 2.0&2.1 mission
- The story line is still not working
2024-07-16 14:15:07 +08:00

38 lines
1.3 KiB
C#

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Config.Task
{
public class PredicateTaskList : TaskConfigInfo
{
public PredicateConfigInfo Predicate { get; set; } = new();
public List<TaskConfigInfo> SuccessTaskList { get; set; } = [];
public List<TaskConfigInfo> FailedTaskList { get; set; } = [];
public static new TaskConfigInfo LoadFromJsonObject(JObject obj)
{
PredicateTaskList info = new();
info.Type = obj[nameof(Type)]!.ToObject<string>()!;
if (obj.ContainsKey(nameof(Predicate)))
{
info.Predicate = (PredicateConfigInfo.LoadFromJsonObject((obj[nameof(Predicate)] as JObject)!)!);
}
if (obj.ContainsKey(nameof(SuccessTaskList)))
{
info.SuccessTaskList = obj[nameof(SuccessTaskList)]?.Select(x => TaskConfigInfo.LoadFromJsonObject((x as JObject)!)).ToList() ?? [];
}
if (obj.ContainsKey(nameof(FailedTaskList)))
{
info.FailedTaskList = obj[nameof(FailedTaskList)]?.Select(x => TaskConfigInfo.LoadFromJsonObject((x as JObject)!)).ToList() ?? [];
}
return info;
}
}
}