57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
namespace TKS.OutGame
|
||
{
|
||
/// <summary>승급 장비 12 종 × 5 등급(gear_items.csv). 등급 순서(order) = 합성 사슬 깊이(craft_from 없는 흰 = 1).</summary>
|
||
public class GearDb : ScriptableObject
|
||
{
|
||
[Serializable]
|
||
public class Item
|
||
{
|
||
public string id;
|
||
public string nameKo;
|
||
public string kind;
|
||
[Tooltip("white|green|blue|purple|orange")]
|
||
public string grade;
|
||
[Tooltip("등급 순서 1~ (합성 사슬 깊이)")]
|
||
public int order;
|
||
public int sellGold;
|
||
public int dropFromChapter;
|
||
public string craftFrom;
|
||
public int craftCount;
|
||
public int craftBlueprint;
|
||
}
|
||
|
||
public List<Item> items = new List<Item>();
|
||
|
||
Dictionary<string, Item> index;
|
||
|
||
public Item Get(string id)
|
||
{
|
||
if (string.IsNullOrEmpty(id)) return null;
|
||
if (index == null || index.Count != items.Count)
|
||
{
|
||
index = new Dictionary<string, Item>();
|
||
foreach (var i in items) index[i.id] = i;
|
||
}
|
||
Item res;
|
||
return index.TryGetValue(id, out res) ? res : null;
|
||
}
|
||
|
||
public void InvalidateIndex()
|
||
{
|
||
index = null;
|
||
}
|
||
|
||
/// <summary>등급 id → 순서(없으면 0).</summary>
|
||
public int OrderOf(string grade)
|
||
{
|
||
foreach (var i in items)
|
||
if (i.grade == grade) return i.order;
|
||
return 0;
|
||
}
|
||
}
|
||
}
|