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;
}
}
}