84 lines
3.1 KiB
C#
84 lines
3.1 KiB
C#
|
|
using CodeStage.AntiCheat.ObscuredTypes;
|
||
|
|
using MiniJSON;
|
||
|
|
using System.Collections;
|
||
|
|
using System.Collections.Generic;
|
||
|
|
using System.Linq;
|
||
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
public class KettleCombineData
|
||
|
|
{
|
||
|
|
public ObscuredInt FoodID, FoodNeedAmount;
|
||
|
|
}
|
||
|
|
|
||
|
|
public class KettleTableData : TableDataBase
|
||
|
|
{
|
||
|
|
public eItem Item; // 포션, 유물
|
||
|
|
public string Name, Icon, Desc;
|
||
|
|
public eRole m_Role;
|
||
|
|
public eStat Stat;
|
||
|
|
public ObscuredFloat Value;
|
||
|
|
public ObscuredInt MaxLv;
|
||
|
|
public List<KettleCombineData> list_CombineData = new List<KettleCombineData>();
|
||
|
|
}
|
||
|
|
|
||
|
|
public class table_kettle : MonoBehaviour
|
||
|
|
{
|
||
|
|
public static table_kettle Ins;
|
||
|
|
|
||
|
|
public TextAsset m_json;
|
||
|
|
|
||
|
|
private List<TableDataBase> list_Data = new List<TableDataBase>();
|
||
|
|
|
||
|
|
private void Awake()
|
||
|
|
{
|
||
|
|
Ins = this;
|
||
|
|
|
||
|
|
Dictionary<string, object> jsonData = Json.Deserialize(m_json.text) as Dictionary<string, object>;
|
||
|
|
|
||
|
|
// ["items"]은 items.txt 안의 items를 가리킨다. 툴 우측 하단 파일 종류란에서 설정 가능.
|
||
|
|
List<object> obj = jsonData[GetType().Name] as List<object>;
|
||
|
|
|
||
|
|
foreach (object objt in obj)
|
||
|
|
{
|
||
|
|
var temp = new KettleTableData();
|
||
|
|
Dictionary<string, object> json = objt as Dictionary<string, object>;
|
||
|
|
|
||
|
|
temp.ID = int.Parse(json["ID"].ToString());
|
||
|
|
temp.Item = DSUtil.StringToEnum<eItem>(json["Item"].ToString());
|
||
|
|
temp.Name = json["Name"].ToString();
|
||
|
|
temp.Icon = json["Icon"].ToString();
|
||
|
|
temp.Desc = json["Desc"].ToString();
|
||
|
|
temp.m_Role = DSUtil.StringToEnum<eRole>(json["Role"].ToString());
|
||
|
|
temp.Stat = DSUtil.StringToEnum<eStat>(json["Stat"].ToString());
|
||
|
|
temp.Value = float.Parse(json["Value"].ToString());
|
||
|
|
temp.MaxLv = int.Parse(json["MaxLV"].ToString());
|
||
|
|
|
||
|
|
for (int i = 1; i <= 4; i++)
|
||
|
|
{
|
||
|
|
var split = json[DSUtil.Format("Combine{0}", i)].ToString().Split(',');
|
||
|
|
var id = int.Parse(split[0]);
|
||
|
|
if (id > 100)
|
||
|
|
{
|
||
|
|
temp.list_CombineData.Add(new KettleCombineData { FoodID = id, FoodNeedAmount = int.Parse(split[1]) });
|
||
|
|
//if (dic_matamount.ContainsKey(id))
|
||
|
|
// dic_matamount[id]++;
|
||
|
|
//else
|
||
|
|
// dic_matamount.Add(id, 1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
list_Data.Add(temp);
|
||
|
|
}
|
||
|
|
|
||
|
|
//var keys = dic_matamount.Keys.ToList();
|
||
|
|
//keys.Sort();
|
||
|
|
//foreach (var key in keys)
|
||
|
|
// Debug.Log(key + " " + dic_matamount[key]);
|
||
|
|
}
|
||
|
|
//Dictionary<int, int> dic_matamount = new Dictionary<int, int>();
|
||
|
|
|
||
|
|
public KettleTableData Get_Data(int _id) { return list_Data.Find(f => f.ID == _id) as KettleTableData; }
|
||
|
|
public List<TableDataBase> Get_DataList() { return list_Data; }
|
||
|
|
public List<TableDataBase> Get_DataList(eItem _item) { return list_Data.FindAll(f => (f as KettleTableData).Item == _item); }
|
||
|
|
public List<TableDataBase> Get_DataList(eRole _role) { return list_Data.FindAll(f => (f as KettleTableData).m_Role == _role); }
|
||
|
|
}
|