From f86562b2f274273e2b831e6324cefa680405da01 Mon Sep 17 00:00:00 2001 From: PopSlime Date: Thu, 24 Aug 2023 23:44:13 +0800 Subject: [PATCH] Draft virtual player strategy. --- .../Crtr/Ruleset/VirtualPlayerStrategy.cs | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Assets/Cryville/Crtr/Ruleset/VirtualPlayerStrategy.cs diff --git a/Assets/Cryville/Crtr/Ruleset/VirtualPlayerStrategy.cs b/Assets/Cryville/Crtr/Ruleset/VirtualPlayerStrategy.cs new file mode 100644 index 0000000..c2702da --- /dev/null +++ b/Assets/Cryville/Crtr/Ruleset/VirtualPlayerStrategy.cs @@ -0,0 +1,44 @@ +using Cryville.Common; +using Cryville.Common.Collections.Generic; +using Cryville.Common.Pdt; +using Cryville.Crtr.Extension; +using Newtonsoft.Json; +using System.IO; +using System.Text; + +namespace Cryville.Crtr.Ruleset { + public class VirtualPlayerStrategy : MetaInfo { + [JsonRequired] + public long format; + + [JsonRequired] + public string ruleset; + + [JsonIgnore] + public PdtVirtualPlayerStrategy Root { get; private set; } + + public void LoadPdt(DirectoryInfo dir) { + using (StreamReader pdtreader = new StreamReader(dir.FullName + "/" + data + ".pdt", Encoding.UTF8)) { + var src = pdtreader.ReadToEnd(); + Root = (PdtVirtualPlayerStrategy)new RulesetInterpreter(src, null).Interpret(typeof(PdtVirtualPlayerStrategy)); + } + } + } + + [Binder(typeof(PdtBinder))] + public class PdtVirtualPlayerStrategy { + public Identifier[] use; + public StrategyAction strategy; + + public void Generate() { + + } + } + + public class StrategyAction { + [ElementList] + public PairList Elements = new PairList(); + [PropertyList] + public PairList Properties = new PairList(); + } +}