using System; using System.Collections.Generic; using UnityEngine; namespace TKS.OutGame { /// 내정 개발 트리(dev_tree.csv · 기획서 §7 · S11) — 갈래(상업·농업·공업) × 노드(소 n/10 · 큰 노드 n/3) · 효과 키 · 비용(골드 · 도면) · 선행 조건. public class DevTree : ScriptableObject { [Serializable] public class Req { public string node; public int lv; } [Serializable] public class Node { public string branch; public string id; public string nameKo; [Tooltip("small | big")] public string kind; [Tooltip("효과 키(「;」 여럿 = 같은 레벨 값)")] public string effectKey; public float pctPerLv; public int lvMax; public int goldBase; public float goldGrowth; public int blueprintFromLv; public int blueprintPerLv; public List requires = new List(); public bool Big { get { return kind == "big"; } } public string[] EffectKeys { get { return effectKey.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); } } } public List nodes = new List(); public Node Get(string id) { foreach (var n in nodes) if (n.id == id) return n; return null; } /// 갈래 순서(표에 처음 나온 순서). public List Branches { get { var l = new List(); foreach (var n in nodes) if (!l.Contains(n.branch)) l.Add(n.branch); return l; } } public List InBranch(string branch) { var l = new List(); foreach (var n in nodes) if (n.branch == branch) l.Add(n); return l; } } }