# Conflicts:
#	Assets/02.Scripts/Ui/Tycoon/TycoonCard.cs
This commit is contained in:
SweetJJuya 2024-09-12 16:40:03 +09:00
commit 9169603d09
38 changed files with 2188 additions and 1787 deletions

View File

@ -3958,7 +3958,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_persistent: 0 _persistent: 0
_customerDataSo: {fileID: 11400000, guid: e6ce9d58057b580479880585947969d8, type: 2} <CustomerDataSo>k__BackingField: {fileID: 11400000, guid: e6ce9d58057b580479880585947969d8, type: 2}
_customerPrefab: {fileID: -2302002259734456648, guid: 23195e611c71ad44b8a1ccb2b6e0efe5, type: 3} _customerPrefab: {fileID: -2302002259734456648, guid: 23195e611c71ad44b8a1ccb2b6e0efe5, type: 3}
_customerSpawnTransform: {fileID: 1038321203} _customerSpawnTransform: {fileID: 1038321203}
_checkEmptySeatInterval: 0.5 _checkEmptySeatInterval: 0.5
@ -16893,10 +16893,22 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_persistent: 0 _persistent: 0
<MaxHeart>k__BackingField: 3
CurrentHeart: 0
Invincibility: 0
<Chracter_Speed>k__BackingField: 1
<LiquidA>k__BackingField: 1000
<LiquidB>k__BackingField: 1000
<LiquidC>k__BackingField: 1000
<LiquidD>k__BackingField: 1000
<LiquidE>k__BackingField: 1000
<GarnishA>k__BackingField: 1000
<GarnishB>k__BackingField: 1000
<CustomerTableController>k__BackingField: {fileID: 1665075870} <CustomerTableController>k__BackingField: {fileID: 1665075870}
<TycoonStageController>k__BackingField: {fileID: 1665075872} <TycoonStageController>k__BackingField: {fileID: 1665075872}
_dailyBgm: TycoonDailyBgm1 _dailyBgm: TycoonDailyBgm1
_levelDataSo: {fileID: 11400000, guid: 702b1ed0ce71d1b4aa1ddbce67e475a1, type: 2} <LevelDataSo>k__BackingField: {fileID: 11400000, guid: 702b1ed0ce71d1b4aa1ddbce67e475a1, type: 2}
<CardDataSo>k__BackingField: {fileID: 11400000, guid: 4607b374e49ab734da548949f9e10fed, type: 2}
--- !u!114 &1665075870 --- !u!114 &1665075870
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -80,7 +80,7 @@ namespace BlueWater.BehaviorTrees.Actions
{ {
tycoonPlayer.GiveItem(); tycoonPlayer.GiveItem();
_balloonUi.ReceiveFood(); _balloonUi.ReceiveFood();
var itemData = ItemManager.Instance.GetItemDataByIdx(carriedBeverageData.Idx); var itemData = ItemManager.Instance.ItemDataSo.GetDataByIdx(carriedBeverageData.Idx);
_customer.SetFood(itemData); _customer.SetFood(itemData);
if (itemData.Quality == ItemQuality.High) if (itemData.Quality == ItemQuality.High)
{ {

View File

@ -81,7 +81,7 @@ namespace BlueWater.BehaviorTrees.Actions
{ {
tycoonPlayer.GiveItem(); tycoonPlayer.GiveItem();
_balloonUi.ReceiveFood(); _balloonUi.ReceiveFood();
var itemData = ItemManager.Instance.GetItemDataByIdx(carriedFoodData.Idx); var itemData = ItemManager.Instance.ItemDataSo.GetDataByIdx(carriedFoodData.Idx);
_customer.SetFood(itemData); _customer.SetFood(itemData);
if (itemData.Quality == ItemQuality.High) if (itemData.Quality == ItemQuality.High)
{ {

View File

@ -85,7 +85,7 @@ namespace BlueWater
foreach (var element in ItemSlotList) foreach (var element in ItemSlotList)
{ {
var elementWeight = ItemManager.Instance.GetItemDataByIdx(element.Idx).Weight; var elementWeight = ItemManager.Instance.ItemDataSo.GetDataByIdx(element.Idx).Weight;
CurrentTotalWeight += elementWeight * element.Quantity; CurrentTotalWeight += elementWeight * element.Quantity;
} }
@ -103,12 +103,12 @@ namespace BlueWater
break; break;
case CombatInventorySortingType.Name: case CombatInventorySortingType.Name:
ItemSlotList.Sort((x, y) => ItemSlotList.Sort((x, y) =>
string.Compare(ItemManager.Instance.GetItemDataByIdx(x.Idx).Name, string.Compare(ItemManager.Instance.ItemDataSo.GetDataByIdx(x.Idx).Name,
ItemManager.Instance.GetItemDataByIdx(y.Idx).Name, StringComparison.Ordinal)); ItemManager.Instance.ItemDataSo.GetDataByIdx(y.Idx).Name, StringComparison.Ordinal));
break; break;
case CombatInventorySortingType.Category: case CombatInventorySortingType.Category:
ItemSlotList.Sort((x, y) => ItemSlotList.Sort((x, y) =>
ItemManager.Instance.GetItemDataByIdx(x.Idx).Type.CompareTo(ItemManager.Instance.GetItemDataByIdx(y.Idx).Type)); ItemManager.Instance.ItemDataSo.GetDataByIdx(x.Idx).Type.CompareTo(ItemManager.Instance.ItemDataSo.GetDataByIdx(y.Idx).Type));
break; break;
case CombatInventorySortingType.Count: case CombatInventorySortingType.Count:
ItemSlotList.Sort((x, y) => y.Quantity.CompareTo(x.Quantity)); ItemSlotList.Sort((x, y) => y.Quantity.CompareTo(x.Quantity));

View File

@ -21,10 +21,10 @@ namespace BlueWater.Editors
public static ExcelToJsonConverter Instance { get; private set; } public static ExcelToJsonConverter Instance { get; private set; }
private Vector2 _scrollPosition; private Vector2 _scrollPosition;
[MenuItem("Tools/EXCEL TO JSON - BlueWater")] [MenuItem("Tools/01.Excel -> Json")]
public static void ShowWindow() public static void ShowWindow()
{ {
Instance = GetWindow<ExcelToJsonConverter>("EXCEL TO JSON"); Instance = GetWindow<ExcelToJsonConverter>("01.Excel -> Json");
} }
private void OnEnable() private void OnEnable()

View File

@ -1,5 +1,7 @@
using System.Collections.Generic; using System;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Reflection;
using BlueWater.Interfaces; using BlueWater.Interfaces;
using BlueWater.Items; using BlueWater.Items;
using BlueWater.Npcs.Customers; using BlueWater.Npcs.Customers;
@ -29,10 +31,10 @@ namespace BlueWater.Editors
private string _assetFilePath = "Assets/02.Scripts/ScriptableObject/Item"; private string _assetFilePath = "Assets/02.Scripts/ScriptableObject/Item";
private DataType _dataType = DataType.None; private DataType _dataType = DataType.None;
[MenuItem("Tools/Json파일 ScriptableObject로 자동 변환")] [MenuItem("Tools/02. json -> ScriptableObject")]
public static void ShowWindow() public static void ShowWindow()
{ {
GetWindow<JsonHelperEditor>("Json파일 ScriptableObject로 자동 변환"); GetWindow<JsonHelperEditor>("02. json -> ScriptableObject");
} }
private void OnGUI() private void OnGUI()
@ -114,15 +116,21 @@ namespace BlueWater.Editors
return; return;
} }
var newData = JsonHelper.LoadJsonData<T>(fullJsonFilePath); var newDataList = JsonHelper.LoadJsonData<T>(fullJsonFilePath);
if (newData == null || newData.Count == 0) if (newDataList == null || newDataList.Count == 0)
{ {
EditorUtility.DisplayDialog("경고 메세지", "Json 파일 데이터가 비어있거나, 불러올 수 없습니다.\n" + fullJsonFilePath, "확인"); EditorUtility.DisplayDialog("경고 메세지", "Json 파일 데이터가 비어있거나, 불러올 수 없습니다.\n" + fullJsonFilePath, "확인");
Debug.LogError("Json 파일 데이터가 비어있거나, 불러올 수 없습니다.\n" + fullJsonFilePath);
return; return;
} }
newData.Sort((x, y) => x.Idx.CompareTo(y.Idx)); var newDataKeyValueList = new List<SerializableKeyValuePair<T>>();
foreach (var data in newDataList)
{
if (data != null)
{
newDataKeyValueList.Add(new SerializableKeyValuePair<T> { Key = data.Idx, Value = data });
}
}
var assetFileName = Path.GetFileNameWithoutExtension(_jsonFilePath) + ".asset"; var assetFileName = Path.GetFileNameWithoutExtension(_jsonFilePath) + ".asset";
var assetPath = Path.Combine(_assetFilePath, assetFileName); var assetPath = Path.Combine(_assetFilePath, assetFileName);
@ -133,7 +141,7 @@ namespace BlueWater.Editors
so = CreateInstance<U>(); so = CreateInstance<U>();
if (so is IDataContainer<T> container) if (so is IDataContainer<T> container)
{ {
container.SetData(newData); container.SetSerializedDataList(newDataKeyValueList);
} }
AssetDatabase.CreateAsset(so, assetPath); AssetDatabase.CreateAsset(so, assetPath);
EditorUtility.DisplayDialog("알림 메세지", "새로운 ScriptableObject가 생성되었습니다.", "확인"); EditorUtility.DisplayDialog("알림 메세지", "새로운 ScriptableObject가 생성되었습니다.", "확인");
@ -142,10 +150,10 @@ namespace BlueWater.Editors
{ {
if (so is IDataContainer<T> container) if (so is IDataContainer<T> container)
{ {
var existingData = container.GetData(); var existingData = container.GetSerializedDataList();
MergeData(existingData, newData); MergeData(existingData, newDataKeyValueList);
existingData.Sort((x, y) => x.Idx.CompareTo(y.Idx)); //existingData.Sort((x, y) => x.Idx.CompareTo(y.Idx));
container.SetData(existingData); container.SetSerializedDataList(existingData);
} }
EditorUtility.DisplayDialog("알림 메세지", "기존 ScriptableObject가 업데이트되었습니다.", "확인"); EditorUtility.DisplayDialog("알림 메세지", "기존 ScriptableObject가 업데이트되었습니다.", "확인");
} }
@ -154,62 +162,83 @@ namespace BlueWater.Editors
AssetDatabase.SaveAssets(); AssetDatabase.SaveAssets();
AssetDatabase.Refresh(); AssetDatabase.Refresh();
} }
/// <summary> private void MergeData<T>(List<SerializableKeyValuePair<T>> existingData, List<SerializableKeyValuePair<T>> newData)
/// Json에 있는 데이터만 덮어씌우도록 하는 함수 where T : class, IIdx
/// Json안에 없는 데이터는 변경하지 않습니다.
/// </summary>
/// <param name="existingData"></param>
/// <param name="newData"></param>
/// <typeparam name="T"></typeparam>
private void MergeData<T>(List<T> existingData, List<T> newData) where T : class, IIdx
{ {
existingData ??= new List<T>(); existingData ??= new List<SerializableKeyValuePair<T>>();
var newDataIdxSet = new HashSet<string>(); var newDataIdxSet = new HashSet<string>();
foreach (var newDataItem in newData) foreach (var newDataItem in newData)
{ {
if (newDataItem != null) if (newDataItem != null && newDataItem.Value != null)
{ {
newDataIdxSet.Add(newDataItem.Idx); newDataIdxSet.Add(newDataItem.Key); // Key는 Idx에 해당
} }
} }
existingData.RemoveAll(item => item == null || !newDataIdxSet.Contains(item.Idx)); // 기존 데이터에서 JSON에 없는 항목 제거
existingData.RemoveAll(item => item == null || !newDataIdxSet.Contains(item.Key));
var existingDataDict = new Dictionary<string, T>(); // 기존 데이터를 Dictionary로 변환
var existingDataDict = new Dictionary<string, SerializableKeyValuePair<T>>();
foreach (var data in existingData) foreach (var data in existingData)
{ {
if (data != null) if (data != null && data.Value != null)
{ {
existingDataDict[data.Idx] = data; existingDataDict[data.Key] = data;
} }
} }
// 새로운 데이터를 기존 데이터에 덮어쓰거나 추가
foreach (var newDataItem in newData) foreach (var newDataItem in newData)
{ {
if (newDataItem == null) continue; if (newDataItem == null || newDataItem.Value == null) continue;
if (existingDataDict.TryGetValue(newDataItem.Idx, out var existingItem)) if (existingDataDict.TryGetValue(newDataItem.Key, out var existingItem))
{ {
var properties = typeof(T).GetProperties(); var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (var property in properties) foreach (var property in properties)
{ {
var newValue = property.GetValue(newDataItem); var newValue = property.GetValue(newDataItem.Value);
if (newValue != null && property.CanWrite) var existingValue = property.GetValue(existingItem.Value);
// 덮어쓰기 조건 (참조 타입이거나, 값 타입이 기본값이 아닌 경우에만 덮어씀)
if (ShouldOverwriteProperty(newValue, existingValue, property))
{ {
property.SetValue(existingItem, newValue); property.SetValue(existingItem.Value, newValue);
} }
} }
} }
else else
{ {
existingDataDict[newDataItem.Idx] = newDataItem; // 기존 데이터에 없으면 새로 추가
existingDataDict[newDataItem.Key] = newDataItem;
} }
} }
// 기존 데이터 리스트를 다시 갱신
existingData.Clear(); existingData.Clear();
existingData.AddRange(existingDataDict.Values); existingData.AddRange(existingDataDict.Values);
} }
/// <summary>
/// 속성 덮어쓰기 여부를 결정하는 일반적인 로직
/// </summary>
private bool ShouldOverwriteProperty(object newValue, object existingValue, PropertyInfo property)
{
// 값이 없으면 덮어쓰지 않음
if (newValue == null) return false;
// 값 타입일 경우 기본값이 아닌지 확인
if (property.PropertyType.IsValueType)
{
var defaultValue = Activator.CreateInstance(property.PropertyType);
return !newValue.Equals(defaultValue); // 기본값이 아니면 덮어씀
}
// 참조 타입인 경우
return true; // 참조 타입은 항상 덮어씀 (null 체크는 상위에서 수행됨)
}
} }
} }

View File

@ -4,7 +4,7 @@ namespace BlueWater.Interfaces
{ {
public interface IDataContainer<T> public interface IDataContainer<T>
{ {
List<T> GetData(); List<SerializableKeyValuePair<T>> GetSerializedDataList();
void SetData(List<T> data); void SetSerializedDataList(List<SerializableKeyValuePair<T>> data);
} }
} }

View File

@ -1,22 +1,93 @@
using System.Collections.Generic; using System.Collections.Generic;
using BlueWater.Interfaces; using BlueWater.Interfaces;
using UnityEngine; using UnityEngine;
using Random = UnityEngine.Random;
namespace BlueWater.Items namespace BlueWater.Items
{ {
public class DataSo<T> : ScriptableObject, IDataContainer<T> public class DataSo<T> : ScriptableObject, IDataContainer<T>
{ {
[field: SerializeField] [SerializeField]
public List<T> Datas { get; private set; } private List<SerializableKeyValuePair<T>> _serializedDataList = new();
public List<T> GetData() private Dictionary<string, T> _datas;
private void OnEnable()
{ {
return Datas; InitializeDictionary();
}
/// <summary>
/// 에디터에서 값이 변경되었을 때 호출되는 함수
/// </summary>
private void OnValidate()
{
InitializeDictionary();
} }
public void SetData(List<T> datas) private void InitializeDictionary()
{ {
Datas = datas; _datas = new Dictionary<string, T>();
foreach (var kvp in _serializedDataList)
{
if (!_datas.ContainsKey(kvp.Key))
{
_datas.Add(kvp.Key, kvp.Value);
}
}
}
/// <summary>
/// 에디터에서 변환할 때 사용하는 함수
/// </summary>
public List<SerializableKeyValuePair<T>> GetSerializedDataList()
{
return _serializedDataList;
}
/// <summary>
/// 에디터에서 변환할 때 사용하는 함수
/// </summary>
public void SetSerializedDataList(List<SerializableKeyValuePair<T>> datas)
{
_serializedDataList = datas;
}
public Dictionary<string, T> GetData()
{
return _datas;
}
public void SetData(Dictionary<string, T> datas)
{
_datas = datas;
}
public T GetDataByIdx(string idx)
{
if (!_datas.TryGetValue(idx, out var data))
{
Debug.LogError($"{idx}에 해당하는 값을 찾을 수 없습니다.");
return default;
}
return data;
}
public int GetDataCount()
{
return _datas.Count;
}
/// <summary>
/// 데이터 전체에서 랜덤한 Key에 접근해 Value를 리턴해주는 함수
/// </summary>
public T GetRandomValue()
{
var randomIndex = Random.Range(0, GetDataCount());
var keys = new List<string>(_datas.Keys);
var randomKey = keys[randomIndex];
return _datas[randomKey];
} }
} }
} }

View File

@ -121,7 +121,7 @@ namespace BlueWater.Items
public void Initialize(ItemSlot itemSlot) public void Initialize(ItemSlot itemSlot)
{ {
ItemSlot = itemSlot; ItemSlot = itemSlot;
ItemData = ItemManager.Instance.GetItemDataByIdx(ItemSlot.Idx); ItemData = ItemManager.Instance.ItemDataSo.GetDataByIdx(ItemSlot.Idx);
SpriteRenderer.sprite = ItemData.Sprite; SpriteRenderer.sprite = ItemData.Sprite;
} }

View File

@ -1,6 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using BlueWater.Items;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using UnityEngine; using UnityEngine;
@ -10,10 +9,9 @@ using UnityEditor;
namespace BlueWater.Items namespace BlueWater.Items
{ {
public class ItemDropTableSo : ScriptableObject [CreateAssetMenu(fileName = "ItemDropTable", menuName = "ScriptableObjects/ItemDropTable")]
public class ItemDropTableSo : DataSo<ItemDropTable> // DataSo<ItemDropTable>를 상속
{ {
// public 필수
public List<ItemDropTable> ItemDropTables = new();
private const string ItemDropJsonPath = "Assets/Resources/Json/ItemDropTable.json"; private const string ItemDropJsonPath = "Assets/Resources/Json/ItemDropTable.json";
private const string CharacterDataJsonPath = "Assets/Resources/Json/CharacterData.json"; private const string CharacterDataJsonPath = "Assets/Resources/Json/CharacterData.json";
private const string FilePath = "Assets/02.Scripts/ScriptableObject/Item/ItemDropTable.asset"; private const string FilePath = "Assets/02.Scripts/ScriptableObject/Item/ItemDropTable.asset";
@ -28,21 +26,33 @@ namespace BlueWater.Items
var instance = CreateFromJson(itemDropJsonContent, characterDataJsonContent); var instance = CreateFromJson(itemDropJsonContent, characterDataJsonContent);
AssetDatabase.CreateAsset(instance, FilePath); AssetDatabase.CreateAsset(instance, FilePath);
AssetDatabase.SaveAssets(); AssetDatabase.SaveAssets();
Debug.Log("ItemDropTable ScriptableObject created successfully in ItemDropTableScriptableObject class."); Debug.Log("ItemDropTable ScriptableObject created successfully.");
} }
#endif #endif
private static ItemDropTableSo CreateFromJson(string itemDropJsonString, string characterDataJsonString) private static ItemDropTableSo CreateFromJson(string itemDropJsonString, string characterDataJsonString)
{ {
var itemDropTables = ParseJsonToCharacterDrops(itemDropJsonString, characterDataJsonString); var itemDropTableSo = CreateInstance<ItemDropTableSo>();
var instance = CreateInstance<ItemDropTableSo>();
instance.ItemDropTables = itemDropTables; var newItemDropTables = ParseJsonToCharacterDrops(itemDropJsonString, characterDataJsonString);
return instance;
// Dictionary<string, ItemDropTable>로 변환하여 직렬화 가능한 리스트에 추가
var serializedDataList = new List<SerializableKeyValuePair<ItemDropTable>>();
foreach (var kvp in newItemDropTables)
{
serializedDataList.Add(new SerializableKeyValuePair<ItemDropTable>
{
Key = kvp.Key,
Value = kvp.Value
});
}
itemDropTableSo.SetSerializedDataList(serializedDataList);
return itemDropTableSo;
} }
private static List<ItemDropTable> ParseJsonToCharacterDrops(string itemDropJsonString, string characterDataJsonString) private static Dictionary<string, ItemDropTable> ParseJsonToCharacterDrops(string itemDropJsonString, string characterDataJsonString)
{ {
var newItemDropTables = new List<ItemDropTable>();
var itemDropTables = new Dictionary<string, ItemDropTable>(); var itemDropTables = new Dictionary<string, ItemDropTable>();
var characterDataDictionary = ParseCharacterDataJson(characterDataJsonString); var characterDataDictionary = ParseCharacterDataJson(characterDataJsonString);
@ -67,8 +77,7 @@ namespace BlueWater.Items
itemDropTables[characterIdx].DropItems.Add(dropItem); itemDropTables[characterIdx].DropItems.Add(dropItem);
} }
newItemDropTables.AddRange(itemDropTables.Values); return itemDropTables;
return newItemDropTables;
} }
private static Dictionary<string, string> ParseCharacterDataJson(string characterDataJsonString) private static Dictionary<string, string> ParseCharacterDataJson(string characterDataJsonString)

View File

@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization;
using Random = UnityEngine.Random; using Random = UnityEngine.Random;
namespace BlueWater.Items namespace BlueWater.Items
@ -13,25 +12,20 @@ namespace BlueWater.Items
[SerializeField, Required] [SerializeField, Required]
private Item _defaultItemPrefab; private Item _defaultItemPrefab;
[SerializeField, Required] [field: SerializeField, Required]
private ItemDataSo _itemDataSo; public ItemDataSo ItemDataSo { get; private set; }
private Dictionary<string, ItemData> _itemDatas;
[SerializeField, Required] [field: SerializeField, Required]
private ItemDropTableSo _itemDropTableSo; public ItemDropTableSo ItemDropTableSo { get; private set; }
private Dictionary<string, ItemDropTable> _itemDropTables;
[SerializeField, Required] [field: SerializeField, Required]
private FoodDataSo _foodDataSo; public FoodDataSo FoodDataSo { get; private set; }
private Dictionary<string, FoodData> _foodDatas;
[SerializeField, Required] [field: SerializeField, Required]
private CocktailDataSo _cocktailDataSo; public CocktailDataSo CocktailDataSo { get; private set; }
private Dictionary<string, CocktailData> _cocktailDatas;
[FormerlySerializedAs("_drinkDataSo")] [SerializeField, Required] [field: SerializeField, Required]
private LiquidDataSo liquidDataSo; public LiquidDataSo LiquidDataSo { get; private set; }
private Dictionary<string, LiquidData> _liquidDatas;
[field: SerializeField, Required] [field: SerializeField, Required]
public ItemSlotDataSo ItemSlotDataSo { get; private set; } public ItemSlotDataSo ItemSlotDataSo { get; private set; }
@ -45,30 +39,9 @@ namespace BlueWater.Items
private const int MaxAttempts = 1000; private const int MaxAttempts = 1000;
protected override void OnAwake()
{
base.OnAwake();
Initialize();
}
private void Initialize()
{
_itemDatas = InitializeDictionary(_itemDataSo.Datas, data => data.Idx);
_itemDropTables = InitializeDictionary(_itemDropTableSo.ItemDropTables, table => table.CharacterData.CharacterIdx);
_foodDatas = InitializeDictionary(_foodDataSo.Datas, data => data.Idx);
_cocktailDatas = InitializeDictionary(_cocktailDataSo.Datas, data => data.Idx);
_liquidDatas = InitializeDictionary(liquidDataSo.Datas, data => data.Idx);
}
private Dictionary<string, T> InitializeDictionary<T>(List<T> dataList, Func<T, string> keySelector)
{
return dataList.ToDictionary(keySelector);
}
public void ItemDropRandomPosition(string idx, Vector3 dropPosition, float randomDropRadius = float.PositiveInfinity) public void ItemDropRandomPosition(string idx, Vector3 dropPosition, float randomDropRadius = float.PositiveInfinity)
{ {
var itemDropTable = GetItemDropTableByIdx(idx); var itemDropTable = ItemDropTableSo.GetDataByIdx(idx);
if (itemDropTable == null) return; if (itemDropTable == null) return;
var droppedItemList = itemDropTable.GetDroppedItemList(); var droppedItemList = itemDropTable.GetDroppedItemList();
@ -88,7 +61,7 @@ namespace BlueWater.Items
droppedPositions.Add(newDropPosition); droppedPositions.Add(newDropPosition);
var itemPrefab = _itemDatas[element.Idx].ItemPrefab; var itemPrefab = ItemDataSo.GetDataByIdx(element.Idx).ItemPrefab;
if (!itemPrefab) if (!itemPrefab)
{ {
itemPrefab = _defaultItemPrefab; itemPrefab = _defaultItemPrefab;
@ -106,35 +79,5 @@ namespace BlueWater.Items
{ {
return positions.Any(pos => Vector3.Distance(position, pos) > _minSeparationDistance); return positions.Any(pos => Vector3.Distance(position, pos) > _minSeparationDistance);
} }
public T GetDataByIdx<T>(Dictionary<string, T> dataDictionary, string idx) where T : class
{
if (dataDictionary.TryGetValue(idx, out var data))
return data;
Debug.LogError($"{idx}와 일치하는 아이템이 없습니다.");
return null;
}
public ItemData GetItemDataByIdx(string idx) => GetDataByIdx(_itemDatas, idx);
public ItemDropTable GetItemDropTableByIdx(string idx)
{
if (string.IsNullOrEmpty(idx))
{
Debug.Log("ItemDropTable이 비어있습니다.");
return null;
}
if (_itemDropTables.TryGetValue(idx, out var itemDropTable)) return itemDropTable;
Debug.LogError($"{idx}와 일치하는 아이템이 없습니다.");
return null;
}
public FoodData GetFoodDataByIdx(string idx) => GetDataByIdx(_foodDatas, idx);
public CocktailData GetCocktailDataByIdx(string idx) => GetDataByIdx(_cocktailDatas, idx);
public Dictionary<string, CocktailData> GetCocktailDatas() => _cocktailDatas;
public LiquidData GetLiquidDataByIdx(string idx) => GetDataByIdx(_liquidDatas, idx);
} }
} }

View File

@ -310,7 +310,7 @@ namespace BlueWater
} }
// ItemManager를 통해 모든 CocktailData 가져오기 // ItemManager를 통해 모든 CocktailData 가져오기
var cocktailDatas = ItemManager.Instance.GetCocktailDatas(); var cocktailDatas = ItemManager.Instance.CocktailDataSo.GetData();
CocktailData matchingCocktail = null; CocktailData matchingCocktail = null;
// 모든 칵테일 데이터를 순회하면서 조건에 맞는 칵테일 찾기 // 모든 칵테일 데이터를 순회하면서 조건에 맞는 칵테일 찾기
@ -362,7 +362,7 @@ namespace BlueWater
// 조건에 만족하는 칵테일이 없음 // 조건에 만족하는 칵테일이 없음
if (matchingCocktail == null) if (matchingCocktail == null)
{ {
matchingCocktail = ItemManager.Instance.GetCocktailDataByIdx("Cocktail000"); matchingCocktail = ItemManager.Instance.CocktailDataSo.GetDataByIdx("Cocktail000");
_completeText.text = "실패"; _completeText.text = "실패";
} }
else else

View File

@ -1,3 +1,4 @@
using System;
using BlueWater.Items; using BlueWater.Items;
using UnityEngine; using UnityEngine;
@ -21,7 +22,11 @@ namespace BlueWater.Tycoons
base.Awake(); base.Awake();
_liquidController = FindAnyObjectByType<LiquidController>(); _liquidController = FindAnyObjectByType<LiquidController>();
_liquidData = ItemManager.Instance.GetLiquidDataByIdx(_idx); }
private void Start()
{
_liquidData = ItemManager.Instance.LiquidDataSo.GetDataByIdx(_idx);
_currentAmount = _liquidData.GetMaxAmount(); _currentAmount = _liquidData.GetMaxAmount();
} }

View File

@ -12,96 +12,132 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c2b2766be55cd5143abce97e8c22303b, type: 3} m_Script: {fileID: 11500000, guid: c2b2766be55cd5143abce97e8c22303b, type: 3}
m_Name: CardDataTable m_Name: CardDataTable
m_EditorClassIdentifier: m_EditorClassIdentifier:
<Datas>k__BackingField: _serializedDataList:
- <Idx>k__BackingField: AddAllLiquid - <Key>k__BackingField: HeartPlus
<Img>k__BackingField: LiquidAllHealImg <Value>k__BackingField:
<ScriptText>k__BackingField: "\uC804\uCCB4 \uC7AC\uB8CC 1000ml \uCD94\uAC00" <Idx>k__BackingField: HeartPlus
<Max>k__BackingField: 0 <Img>k__BackingField: HeartPlusImg
<Ratio>k__BackingField: 10 <ScriptText>k__BackingField: "\uD558\uD2B8 \uD558\uB098 \uCD94\uAC00"
- <Idx>k__BackingField: AddGarnish1 <Max>k__BackingField: 10
<Img>k__BackingField: Garnish1Img <Ratio>k__BackingField: 5
<ScriptText>k__BackingField: "1\uBC88 \uAC00\uB2C8\uC26C\uB97C 4000ml \uCD94\uAC00" - <Key>k__BackingField: HeartHeal
<Max>k__BackingField: 0 <Value>k__BackingField:
<Ratio>k__BackingField: 5 <Idx>k__BackingField: HeartHeal
- <Idx>k__BackingField: AddGarnish2 <Img>k__BackingField: HeartHealImg
<Img>k__BackingField: Garnish2Img <ScriptText>k__BackingField: "\uD558\uD2B8 \uD558\uB098 \uD68C\uBCF5"
<ScriptText>k__BackingField: "2\uBC88 \uAC00\uB2C8\uC26C\uB97C 4000ml \uCD94\uAC00" <Max>k__BackingField: 10
<Max>k__BackingField: 0 <Ratio>k__BackingField: 10
<Ratio>k__BackingField: 5 - <Key>k__BackingField: HeartAllHeal
- <Idx>k__BackingField: AddLiquidB <Value>k__BackingField:
<Img>k__BackingField: LiquidBImg <Idx>k__BackingField: HeartAllHeal
<ScriptText>k__BackingField: "B \uC220\uC744 4000ml \uCD94\uAC00" <Img>k__BackingField: HeartAllHealImg
<Max>k__BackingField: 0 <ScriptText>k__BackingField: "\uD558\uD2B8 \uC804\uCCB4 \uD68C\uBCF5"
<Ratio>k__BackingField: 5 <Max>k__BackingField: 0
- <Idx>k__BackingField: AddLiquidC <Ratio>k__BackingField: 5
<Img>k__BackingField: LiquidCImg - <Key>k__BackingField: AddLiquidB
<ScriptText>k__BackingField: "C \uC220\uC744 4000ml \uCD94\uAC00" <Value>k__BackingField:
<Max>k__BackingField: 0 <Idx>k__BackingField: AddLiquidB
<Ratio>k__BackingField: 5 <Img>k__BackingField: LiquidBImg
- <Idx>k__BackingField: AddLiquidD <ScriptText>k__BackingField: "B \uC220\uC744 4000ml \uCD94\uAC00"
<Img>k__BackingField: LiquidDImg <Max>k__BackingField: 0
<ScriptText>k__BackingField: "D \uC220\uC744 4000ml \uCD94\uAC00" <Ratio>k__BackingField: 5
<Max>k__BackingField: 0 - <Key>k__BackingField: AddLiquidC
<Ratio>k__BackingField: 5 <Value>k__BackingField:
- <Idx>k__BackingField: AddLiquidE <Idx>k__BackingField: AddLiquidC
<Img>k__BackingField: LiquidEImg <Img>k__BackingField: LiquidCImg
<ScriptText>k__BackingField: "E \uC220\uC744 4000ml \uCD94\uAC00" <ScriptText>k__BackingField: "C \uC220\uC744 4000ml \uCD94\uAC00"
<Max>k__BackingField: 0 <Max>k__BackingField: 0
<Ratio>k__BackingField: 5 <Ratio>k__BackingField: 5
- <Idx>k__BackingField: ChefNpc - <Key>k__BackingField: AddLiquidD
<Img>k__BackingField: ChefNpcImg <Value>k__BackingField:
<ScriptText>k__BackingField: "\uBC14\uD150\uD130 \uC885\uC5C5\uC6D0 \uCD94\uAC00" <Idx>k__BackingField: AddLiquidD
<Max>k__BackingField: 5 <Img>k__BackingField: LiquidDImg
<Ratio>k__BackingField: 5 <ScriptText>k__BackingField: "D \uC220\uC744 4000ml \uCD94\uAC00"
- <Idx>k__BackingField: CleanerNpc <Max>k__BackingField: 0
<Img>k__BackingField: CleanerNpcImg <Ratio>k__BackingField: 5
<ScriptText>k__BackingField: "\uCCAD\uC18C \uC885\uC5C5\uC6D0 \uCD94\uAC00" - <Key>k__BackingField: AddLiquidE
<Max>k__BackingField: 5 <Value>k__BackingField:
<Ratio>k__BackingField: 5 <Idx>k__BackingField: AddLiquidE
- <Idx>k__BackingField: CleanUp <Img>k__BackingField: LiquidEImg
<Img>k__BackingField: CleanUpImgImg <ScriptText>k__BackingField: "E \uC220\uC744 4000ml \uCD94\uAC00"
<ScriptText>k__BackingField: "\uB808\uC2A4\uD1A0\uB791 \uD55C\uBC88\uC5D0 \uCCAD\uC18C" <Max>k__BackingField: 0
<Max>k__BackingField: 0 <Ratio>k__BackingField: 5
<Ratio>k__BackingField: 5 - <Key>k__BackingField: AddGarnish1
- <Idx>k__BackingField: ExpGetUp <Value>k__BackingField:
<Img>k__BackingField: ExpGetUpImg <Idx>k__BackingField: AddGarnish1
<ScriptText>k__BackingField: "\uACBD\uD5D8\uCE58 \uD68D\uB4DD 5% \uC99D\uAC00" <Img>k__BackingField: Garnish1Img
<Max>k__BackingField: 10 <ScriptText>k__BackingField: "1\uBC88 \uAC00\uB2C8\uC26C\uB97C 4000ml \uCD94\uAC00"
<Ratio>k__BackingField: 5 <Max>k__BackingField: 0
- <Idx>k__BackingField: GoldGetUp <Ratio>k__BackingField: 5
<Img>k__BackingField: GoldGetUpImg - <Key>k__BackingField: AddGarnish2
<ScriptText>k__BackingField: "\uACE8\uB4DC \uD68D\uB4DD 5% \uC99D\uAC00" <Value>k__BackingField:
<Max>k__BackingField: 10 <Idx>k__BackingField: AddGarnish2
<Ratio>k__BackingField: 5 <Img>k__BackingField: Garnish2Img
- <Idx>k__BackingField: GuageReset <ScriptText>k__BackingField: "2\uBC88 \uAC00\uB2C8\uC26C\uB97C 4000ml \uCD94\uAC00"
<Img>k__BackingField: GuageResetImg <Max>k__BackingField: 0
<ScriptText>k__BackingField: "\uBAA8\uB4E0 \uC190\uB2D8\uB4E4\uC758 \uAE30\uB2E4\uB9BC <Ratio>k__BackingField: 5
\uCD08\uAE30\uD654" - <Key>k__BackingField: AddAllLiquid
<Max>k__BackingField: 0 <Value>k__BackingField:
<Ratio>k__BackingField: 5 <Idx>k__BackingField: AddAllLiquid
- <Idx>k__BackingField: HeartAllHeal <Img>k__BackingField: LiquidAllHealImg
<Img>k__BackingField: HeartAllHealImg <ScriptText>k__BackingField: "\uC804\uCCB4 \uC7AC\uB8CC 1000ml \uCD94\uAC00"
<ScriptText>k__BackingField: "\uD558\uD2B8 \uC804\uCCB4 \uD68C\uBCF5" <Max>k__BackingField: 0
<Max>k__BackingField: 0 <Ratio>k__BackingField: 10
<Ratio>k__BackingField: 5 - <Key>k__BackingField: ServerNpc
- <Idx>k__BackingField: HeartHeal <Value>k__BackingField:
<Img>k__BackingField: HeartHealImg <Idx>k__BackingField: ServerNpc
<ScriptText>k__BackingField: "\uD558\uD2B8 \uD558\uB098 \uD68C\uBCF5" <Img>k__BackingField: ServerNpcImg
<Max>k__BackingField: 10 <ScriptText>k__BackingField: "\uC11C\uBE59 \uC885\uC5C5\uC6D0 \uCD94\uAC00"
<Ratio>k__BackingField: 10 <Max>k__BackingField: 5
- <Idx>k__BackingField: HeartPlus <Ratio>k__BackingField: 5
<Img>k__BackingField: HeartPlusImg - <Key>k__BackingField: CleanerNpc
<ScriptText>k__BackingField: "\uD558\uD2B8 \uD558\uB098 \uCD94\uAC00" <Value>k__BackingField:
<Max>k__BackingField: 10 <Idx>k__BackingField: CleanerNpc
<Ratio>k__BackingField: 5 <Img>k__BackingField: CleanerNpcImg
- <Idx>k__BackingField: ServerNpc <ScriptText>k__BackingField: "\uCCAD\uC18C \uC885\uC5C5\uC6D0 \uCD94\uAC00"
<Img>k__BackingField: ServerNpcImg <Max>k__BackingField: 5
<ScriptText>k__BackingField: "\uC11C\uBE59 \uC885\uC5C5\uC6D0 \uCD94\uAC00" <Ratio>k__BackingField: 5
<Max>k__BackingField: 5 - <Key>k__BackingField: ChefNpc
<Ratio>k__BackingField: 5 <Value>k__BackingField:
- <Idx>k__BackingField: SpeedUp <Idx>k__BackingField: ChefNpc
<Img>k__BackingField: SpeedUpImg <Img>k__BackingField: ChefNpcImg
<ScriptText>k__BackingField: "\uD50C\uB808\uC774\uC5B4 \uC774\uB3D9 \uC18D\uB3C4 <ScriptText>k__BackingField: "\uBC14\uD150\uD130 \uC885\uC5C5\uC6D0 \uCD94\uAC00"
5% \uC99D\uAC00" <Max>k__BackingField: 5
<Max>k__BackingField: 10 <Ratio>k__BackingField: 5
<Ratio>k__BackingField: 5 - <Key>k__BackingField: SpeedUp
<Value>k__BackingField:
<Idx>k__BackingField: SpeedUp
<Img>k__BackingField: SpeedUpImg
<ScriptText>k__BackingField: "\uD50C\uB808\uC774\uC5B4 \uC774\uB3D9 \uC18D\uB3C4
5% \uC99D\uAC00"
<Max>k__BackingField: 10
<Ratio>k__BackingField: 5
- <Key>k__BackingField: ExpGetUp
<Value>k__BackingField:
<Idx>k__BackingField: ExpGetUp
<Img>k__BackingField: ExpGetUpImg
<ScriptText>k__BackingField: "\uACBD\uD5D8\uCE58 \uD68D\uB4DD 5% \uC99D\uAC00"
<Max>k__BackingField: 10
<Ratio>k__BackingField: 5
- <Key>k__BackingField: GoldGetUp
<Value>k__BackingField:
<Idx>k__BackingField: GoldGetUp
<Img>k__BackingField: GoldGetUpImg
<ScriptText>k__BackingField: "\uACE8\uB4DC \uD68D\uB4DD 5% \uC99D\uAC00"
<Max>k__BackingField: 10
<Ratio>k__BackingField: 5
- <Key>k__BackingField: CleanUp
<Value>k__BackingField:
<Idx>k__BackingField: CleanUp
<Img>k__BackingField: CleanUpImgImg
<ScriptText>k__BackingField: "\uB808\uC2A4\uD1A0\uB791 \uD55C\uBC88\uC5D0 \uCCAD\uC18C"
<Max>k__BackingField: 0
<Ratio>k__BackingField: 5
- <Key>k__BackingField: GuageReset
<Value>k__BackingField:
<Idx>k__BackingField: GuageReset
<Img>k__BackingField: GuageResetImg
<ScriptText>k__BackingField: "\uBAA8\uB4E0 \uC190\uB2D8\uB4E4\uC758 \uAE30\uB2E4\uB9BC
\uCD08\uAE30\uD654"
<Max>k__BackingField: 0
<Ratio>k__BackingField: 5

View File

@ -12,228 +12,260 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 03802f3276c69a348aaa2515377b47cc, type: 3} m_Script: {fileID: 11500000, guid: 03802f3276c69a348aaa2515377b47cc, type: 3}
m_Name: CocktailDataTable m_Name: CocktailDataTable
m_EditorClassIdentifier: m_EditorClassIdentifier:
<Datas>k__BackingField: _serializedDataList:
- <Idx>k__BackingField: Cocktail000 - <Key>k__BackingField: Cocktail000
<Name>k__BackingField: "\uC4F0\uB808\uAE30" <Value>k__BackingField:
<RatioRange>k__BackingField: 0 <Idx>k__BackingField: Cocktail000
<IngredientIdx1>k__BackingField: <Name>k__BackingField: "\uC4F0\uB808\uAE30"
<IngredientAmount1>k__BackingField: 0 <RatioRange>k__BackingField: 0
<IngredientIdx2>k__BackingField: <IngredientIdx1>k__BackingField:
<IngredientAmount2>k__BackingField: 0 <IngredientAmount1>k__BackingField: 0
<IngredientIdx3>k__BackingField: <IngredientIdx2>k__BackingField:
<IngredientAmount3>k__BackingField: 0 <IngredientAmount2>k__BackingField: 0
<IngredientIdx4>k__BackingField: <IngredientIdx3>k__BackingField:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount3>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx4>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <IngredientIdx5>k__BackingField:
- <Idx>k__BackingField: Cocktail001 <IngredientAmount5>k__BackingField: 0
<Name>k__BackingField: "\uCE75\uD14C\uC77CA" <Sprite>k__BackingField: {fileID: 0}
<RatioRange>k__BackingField: 0 - <Key>k__BackingField: Cocktail001
<IngredientIdx1>k__BackingField: LiquidA <Value>k__BackingField:
<IngredientAmount1>k__BackingField: 400 <Idx>k__BackingField: Cocktail001
<IngredientIdx2>k__BackingField: <Name>k__BackingField: "\uCE75\uD14C\uC77CA"
<IngredientAmount2>k__BackingField: 0 <RatioRange>k__BackingField: 0
<IngredientIdx3>k__BackingField: <IngredientIdx1>k__BackingField: LiquidA
<IngredientAmount3>k__BackingField: 0 <IngredientAmount1>k__BackingField: 400
<IngredientIdx4>k__BackingField: <IngredientIdx2>k__BackingField:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount2>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx3>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount3>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 21300000, guid: 06a07650d842ee94390ca2505955e94d, type: 3} <IngredientIdx4>k__BackingField:
- <Idx>k__BackingField: Cocktail002 <IngredientAmount4>k__BackingField: 0
<Name>k__BackingField: "\uCE75\uD14C\uC77CB" <IngredientIdx5>k__BackingField:
<RatioRange>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<IngredientIdx1>k__BackingField: LiquidB <Sprite>k__BackingField: {fileID: 21300000, guid: 06a07650d842ee94390ca2505955e94d, type: 3}
<IngredientAmount1>k__BackingField: 400 - <Key>k__BackingField: Cocktail002
<IngredientIdx2>k__BackingField: <Value>k__BackingField:
<IngredientAmount2>k__BackingField: 0 <Idx>k__BackingField: Cocktail002
<IngredientIdx3>k__BackingField: <Name>k__BackingField: "\uCE75\uD14C\uC77CB"
<IngredientAmount3>k__BackingField: 0 <RatioRange>k__BackingField: 0
<IngredientIdx4>k__BackingField: <IngredientIdx1>k__BackingField: LiquidB
<IngredientAmount4>k__BackingField: 0 <IngredientAmount1>k__BackingField: 400
<IngredientIdx5>k__BackingField: <IngredientIdx2>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount2>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 21300000, guid: 19df9fcd0ddf5754890f7ea9c127b905, type: 3} <IngredientIdx3>k__BackingField:
- <Idx>k__BackingField: Cocktail003 <IngredientAmount3>k__BackingField: 0
<Name>k__BackingField: "\uCE75\uD14C\uC77CC" <IngredientIdx4>k__BackingField:
<RatioRange>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx1>k__BackingField: LiquidC <IngredientIdx5>k__BackingField:
<IngredientAmount1>k__BackingField: 400 <IngredientAmount5>k__BackingField: 0
<IngredientIdx2>k__BackingField: <Sprite>k__BackingField: {fileID: 21300000, guid: 19df9fcd0ddf5754890f7ea9c127b905, type: 3}
<IngredientAmount2>k__BackingField: 0 - <Key>k__BackingField: Cocktail003
<IngredientIdx3>k__BackingField: <Value>k__BackingField:
<IngredientAmount3>k__BackingField: 0 <Idx>k__BackingField: Cocktail003
<IngredientIdx4>k__BackingField: <Name>k__BackingField: "\uCE75\uD14C\uC77CC"
<IngredientAmount4>k__BackingField: 0 <RatioRange>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx1>k__BackingField: LiquidC
<IngredientAmount5>k__BackingField: 0 <IngredientAmount1>k__BackingField: 400
<Sprite>k__BackingField: {fileID: 21300000, guid: a51b37c5e512c7e488e80f986f5f8aac, type: 3} <IngredientIdx2>k__BackingField:
- <Idx>k__BackingField: Cocktail004 <IngredientAmount2>k__BackingField: 0
<Name>k__BackingField: "\uCE75\uD14C\uC77CD" <IngredientIdx3>k__BackingField:
<RatioRange>k__BackingField: 0 <IngredientAmount3>k__BackingField: 0
<IngredientIdx1>k__BackingField: LiquidD <IngredientIdx4>k__BackingField:
<IngredientAmount1>k__BackingField: 400 <IngredientAmount4>k__BackingField: 0
<IngredientIdx2>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount2>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<IngredientIdx3>k__BackingField: <Sprite>k__BackingField: {fileID: 21300000, guid: a51b37c5e512c7e488e80f986f5f8aac, type: 3}
<IngredientAmount3>k__BackingField: 0 - <Key>k__BackingField: Cocktail004
<IngredientIdx4>k__BackingField: <Value>k__BackingField:
<IngredientAmount4>k__BackingField: 0 <Idx>k__BackingField: Cocktail004
<IngredientIdx5>k__BackingField: <Name>k__BackingField: "\uCE75\uD14C\uC77CD"
<IngredientAmount5>k__BackingField: 0 <RatioRange>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 21300000, guid: d74e702a3e490a54e8a159128222f175, type: 3} <IngredientIdx1>k__BackingField: LiquidD
- <Idx>k__BackingField: Cocktail005 <IngredientAmount1>k__BackingField: 400
<Name>k__BackingField: "\uCE75\uD14C\uC77CE" <IngredientIdx2>k__BackingField:
<RatioRange>k__BackingField: 0 <IngredientAmount2>k__BackingField: 0
<IngredientIdx1>k__BackingField: LiquidE <IngredientIdx3>k__BackingField:
<IngredientAmount1>k__BackingField: 400 <IngredientAmount3>k__BackingField: 0
<IngredientIdx2>k__BackingField: <IngredientIdx4>k__BackingField:
<IngredientAmount2>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx3>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount3>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<IngredientIdx4>k__BackingField: <Sprite>k__BackingField: {fileID: 21300000, guid: d74e702a3e490a54e8a159128222f175, type: 3}
<IngredientAmount4>k__BackingField: 0 - <Key>k__BackingField: Cocktail005
<IngredientIdx5>k__BackingField: <Value>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <Idx>k__BackingField: Cocktail005
<Sprite>k__BackingField: {fileID: 21300000, guid: bff0ff1345b7ae446b330a01e6ef7bd3, type: 3} <Name>k__BackingField: "\uCE75\uD14C\uC77CE"
- <Idx>k__BackingField: Cocktail006 <RatioRange>k__BackingField: 0
<Name>k__BackingField: "\uCE75\uD14C\uC77CAC" <IngredientIdx1>k__BackingField: LiquidE
<RatioRange>k__BackingField: 5 <IngredientAmount1>k__BackingField: 400
<IngredientIdx1>k__BackingField: LiquidA <IngredientIdx2>k__BackingField:
<IngredientAmount1>k__BackingField: 200 <IngredientAmount2>k__BackingField: 0
<IngredientIdx2>k__BackingField: LiquidC <IngredientIdx3>k__BackingField:
<IngredientAmount2>k__BackingField: 200 <IngredientAmount3>k__BackingField: 0
<IngredientIdx3>k__BackingField: <IngredientIdx4>k__BackingField:
<IngredientAmount3>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx4>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<IngredientIdx5>k__BackingField: <Sprite>k__BackingField: {fileID: 21300000, guid: bff0ff1345b7ae446b330a01e6ef7bd3, type: 3}
<IngredientAmount5>k__BackingField: 0 - <Key>k__BackingField: Cocktail006
<Sprite>k__BackingField: {fileID: 21300000, guid: 006a36cba2a146247a1d25b9e246faaa, type: 3} <Value>k__BackingField:
- <Idx>k__BackingField: Cocktail007 <Idx>k__BackingField: Cocktail006
<Name>k__BackingField: "\uCE75\uD14C\uC77CBD" <Name>k__BackingField: "\uCE75\uD14C\uC77CAC"
<RatioRange>k__BackingField: 5 <RatioRange>k__BackingField: 5
<IngredientIdx1>k__BackingField: LiquidB <IngredientIdx1>k__BackingField: LiquidA
<IngredientAmount1>k__BackingField: 200 <IngredientAmount1>k__BackingField: 200
<IngredientIdx2>k__BackingField: LiquidD <IngredientIdx2>k__BackingField: LiquidC
<IngredientAmount2>k__BackingField: 200 <IngredientAmount2>k__BackingField: 200
<IngredientIdx3>k__BackingField: <IngredientIdx3>k__BackingField:
<IngredientAmount3>k__BackingField: 0 <IngredientAmount3>k__BackingField: 0
<IngredientIdx4>k__BackingField: <IngredientIdx4>k__BackingField:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 21300000, guid: 31d7e535d499d5f43ab64731acc3eec3, type: 3} <Sprite>k__BackingField: {fileID: 21300000, guid: 006a36cba2a146247a1d25b9e246faaa, type: 3}
- <Idx>k__BackingField: Cocktail008 - <Key>k__BackingField: Cocktail007
<Name>k__BackingField: "\uCE75\uD14C\uC77CCD" <Value>k__BackingField:
<RatioRange>k__BackingField: 5 <Idx>k__BackingField: Cocktail007
<IngredientIdx1>k__BackingField: LiquidC <Name>k__BackingField: "\uCE75\uD14C\uC77CBD"
<IngredientAmount1>k__BackingField: 200 <RatioRange>k__BackingField: 5
<IngredientIdx2>k__BackingField: LiquidD <IngredientIdx1>k__BackingField: LiquidB
<IngredientAmount2>k__BackingField: 200 <IngredientAmount1>k__BackingField: 200
<IngredientIdx3>k__BackingField: <IngredientIdx2>k__BackingField: LiquidD
<IngredientAmount3>k__BackingField: 0 <IngredientAmount2>k__BackingField: 200
<IngredientIdx4>k__BackingField: <IngredientIdx3>k__BackingField:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount3>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx4>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 21300000, guid: 997d0aea13894a9428bf9d9f7fb66762, type: 3} <IngredientIdx5>k__BackingField:
- <Idx>k__BackingField: Cocktail009 <IngredientAmount5>k__BackingField: 0
<Name>k__BackingField: "\uCE75\uD14C\uC77CABE" <Sprite>k__BackingField: {fileID: 21300000, guid: 31d7e535d499d5f43ab64731acc3eec3, type: 3}
<RatioRange>k__BackingField: 10 - <Key>k__BackingField: Cocktail008
<IngredientIdx1>k__BackingField: LiquidA <Value>k__BackingField:
<IngredientAmount1>k__BackingField: 100 <Idx>k__BackingField: Cocktail008
<IngredientIdx2>k__BackingField: LiquidB <Name>k__BackingField: "\uCE75\uD14C\uC77CCD"
<IngredientAmount2>k__BackingField: 100 <RatioRange>k__BackingField: 5
<IngredientIdx3>k__BackingField: LiquidE <IngredientIdx1>k__BackingField: LiquidC
<IngredientAmount3>k__BackingField: 200 <IngredientAmount1>k__BackingField: 200
<IngredientIdx4>k__BackingField: <IngredientIdx2>k__BackingField: LiquidD
<IngredientAmount4>k__BackingField: 0 <IngredientAmount2>k__BackingField: 200
<IngredientIdx5>k__BackingField: <IngredientIdx3>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount3>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 21300000, guid: 3d04bfa220b9ebe40a4ae3f0a68c0911, type: 3} <IngredientIdx4>k__BackingField:
- <Idx>k__BackingField: Cocktail010 <IngredientAmount4>k__BackingField: 0
<Name>k__BackingField: "\uCE75\uD14C\uC77CCDE" <IngredientIdx5>k__BackingField:
<RatioRange>k__BackingField: 10 <IngredientAmount5>k__BackingField: 0
<IngredientIdx1>k__BackingField: LiquidC <Sprite>k__BackingField: {fileID: 21300000, guid: 997d0aea13894a9428bf9d9f7fb66762, type: 3}
<IngredientAmount1>k__BackingField: 100 - <Key>k__BackingField: Cocktail009
<IngredientIdx2>k__BackingField: LiquidD <Value>k__BackingField:
<IngredientAmount2>k__BackingField: 100 <Idx>k__BackingField: Cocktail009
<IngredientIdx3>k__BackingField: LiquidE <Name>k__BackingField: "\uCE75\uD14C\uC77CABE"
<IngredientAmount3>k__BackingField: 200 <RatioRange>k__BackingField: 10
<IngredientIdx4>k__BackingField: <IngredientIdx1>k__BackingField: LiquidA
<IngredientAmount4>k__BackingField: 0 <IngredientAmount1>k__BackingField: 100
<IngredientIdx5>k__BackingField: <IngredientIdx2>k__BackingField: LiquidB
<IngredientAmount5>k__BackingField: 0 <IngredientAmount2>k__BackingField: 100
<Sprite>k__BackingField: {fileID: 21300000, guid: 09168d6395b3e9b41b195a2aa8ae0a82, type: 3} <IngredientIdx3>k__BackingField: LiquidE
- <Idx>k__BackingField: Cocktail011 <IngredientAmount3>k__BackingField: 200
<Name>k__BackingField: "\uCE75\uD14C\uC77CB1" <IngredientIdx4>k__BackingField:
<RatioRange>k__BackingField: 10 <IngredientAmount4>k__BackingField: 0
<IngredientIdx1>k__BackingField: LiquidB <IngredientIdx5>k__BackingField:
<IngredientAmount1>k__BackingField: 320 <IngredientAmount5>k__BackingField: 0
<IngredientIdx2>k__BackingField: Garnish1 <Sprite>k__BackingField: {fileID: 21300000, guid: 3d04bfa220b9ebe40a4ae3f0a68c0911, type: 3}
<IngredientAmount2>k__BackingField: 80 - <Key>k__BackingField: Cocktail010
<IngredientIdx3>k__BackingField: <Value>k__BackingField:
<IngredientAmount3>k__BackingField: 0 <Idx>k__BackingField: Cocktail010
<IngredientIdx4>k__BackingField: <Name>k__BackingField: "\uCE75\uD14C\uC77CCDE"
<IngredientAmount4>k__BackingField: 0 <RatioRange>k__BackingField: 10
<IngredientIdx5>k__BackingField: <IngredientIdx1>k__BackingField: LiquidC
<IngredientAmount5>k__BackingField: 0 <IngredientAmount1>k__BackingField: 100
<Sprite>k__BackingField: {fileID: 0} <IngredientIdx2>k__BackingField: LiquidD
- <Idx>k__BackingField: Cocktail012 <IngredientAmount2>k__BackingField: 100
<Name>k__BackingField: "\uCE75\uD14C\uC77CD1" <IngredientIdx3>k__BackingField: LiquidE
<RatioRange>k__BackingField: 10 <IngredientAmount3>k__BackingField: 200
<IngredientIdx1>k__BackingField: LiquidD <IngredientIdx4>k__BackingField:
<IngredientAmount1>k__BackingField: 320 <IngredientAmount4>k__BackingField: 0
<IngredientIdx2>k__BackingField: Garnish1 <IngredientIdx5>k__BackingField:
<IngredientAmount2>k__BackingField: 80 <IngredientAmount5>k__BackingField: 0
<IngredientIdx3>k__BackingField: <Sprite>k__BackingField: {fileID: 21300000, guid: 09168d6395b3e9b41b195a2aa8ae0a82, type: 3}
<IngredientAmount3>k__BackingField: 0 - <Key>k__BackingField: Cocktail011
<IngredientIdx4>k__BackingField: <Value>k__BackingField:
<IngredientAmount4>k__BackingField: 0 <Idx>k__BackingField: Cocktail011
<IngredientIdx5>k__BackingField: <Name>k__BackingField: "\uCE75\uD14C\uC77CB1"
<IngredientAmount5>k__BackingField: 0 <RatioRange>k__BackingField: 10
<Sprite>k__BackingField: {fileID: 0} <IngredientIdx1>k__BackingField: LiquidB
- <Idx>k__BackingField: Cocktail013 <IngredientAmount1>k__BackingField: 320
<Name>k__BackingField: "\uCE75\uD14C\uC77CA2" <IngredientIdx2>k__BackingField: Garnish1
<RatioRange>k__BackingField: 5 <IngredientAmount2>k__BackingField: 80
<IngredientIdx1>k__BackingField: LiquidA <IngredientIdx3>k__BackingField:
<IngredientAmount1>k__BackingField: 360 <IngredientAmount3>k__BackingField: 0
<IngredientIdx2>k__BackingField: Garnish2 <IngredientIdx4>k__BackingField:
<IngredientAmount2>k__BackingField: 40 <IngredientAmount4>k__BackingField: 0
<IngredientIdx3>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount3>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<IngredientIdx4>k__BackingField: <Sprite>k__BackingField: {fileID: 0}
<IngredientAmount4>k__BackingField: 0 - <Key>k__BackingField: Cocktail012
<IngredientIdx5>k__BackingField: <Value>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <Idx>k__BackingField: Cocktail012
<Sprite>k__BackingField: {fileID: 0} <Name>k__BackingField: "\uCE75\uD14C\uC77CD1"
- <Idx>k__BackingField: Cocktail014 <RatioRange>k__BackingField: 10
<Name>k__BackingField: "\uCE75\uD14C\uC77CC2" <IngredientIdx1>k__BackingField: LiquidD
<RatioRange>k__BackingField: 5 <IngredientAmount1>k__BackingField: 320
<IngredientIdx1>k__BackingField: LiquidC <IngredientIdx2>k__BackingField: Garnish1
<IngredientAmount1>k__BackingField: 360 <IngredientAmount2>k__BackingField: 80
<IngredientIdx2>k__BackingField: Garnish2 <IngredientIdx3>k__BackingField:
<IngredientAmount2>k__BackingField: 40 <IngredientAmount3>k__BackingField: 0
<IngredientIdx3>k__BackingField: <IngredientIdx4>k__BackingField:
<IngredientAmount3>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx4>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<IngredientIdx5>k__BackingField: <Sprite>k__BackingField: {fileID: 0}
<IngredientAmount5>k__BackingField: 0 - <Key>k__BackingField: Cocktail013
<Sprite>k__BackingField: {fileID: 0} <Value>k__BackingField:
- <Idx>k__BackingField: Cocktail015 <Idx>k__BackingField: Cocktail013
<Name>k__BackingField: "\uCE75\uD14C\uC77CE2" <Name>k__BackingField: "\uCE75\uD14C\uC77CA2"
<RatioRange>k__BackingField: 5 <RatioRange>k__BackingField: 5
<IngredientIdx1>k__BackingField: LiquidE <IngredientIdx1>k__BackingField: LiquidA
<IngredientAmount1>k__BackingField: 360 <IngredientAmount1>k__BackingField: 360
<IngredientIdx2>k__BackingField: Garnish2 <IngredientIdx2>k__BackingField: Garnish2
<IngredientAmount2>k__BackingField: 40 <IngredientAmount2>k__BackingField: 40
<IngredientIdx3>k__BackingField: <IngredientIdx3>k__BackingField:
<IngredientAmount3>k__BackingField: 0 <IngredientAmount3>k__BackingField: 0
<IngredientIdx4>k__BackingField: <IngredientIdx4>k__BackingField:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 0}
- <Key>k__BackingField: Cocktail014
<Value>k__BackingField:
<Idx>k__BackingField: Cocktail014
<Name>k__BackingField: "\uCE75\uD14C\uC77CC2"
<RatioRange>k__BackingField: 5
<IngredientIdx1>k__BackingField: LiquidC
<IngredientAmount1>k__BackingField: 360
<IngredientIdx2>k__BackingField: Garnish2
<IngredientAmount2>k__BackingField: 40
<IngredientIdx3>k__BackingField:
<IngredientAmount3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
- <Key>k__BackingField: Cocktail015
<Value>k__BackingField:
<Idx>k__BackingField: Cocktail015
<Name>k__BackingField: "\uCE75\uD14C\uC77CE2"
<RatioRange>k__BackingField: 5
<IngredientIdx1>k__BackingField: LiquidE
<IngredientAmount1>k__BackingField: 360
<IngredientIdx2>k__BackingField: Garnish2
<IngredientAmount2>k__BackingField: 40
<IngredientIdx3>k__BackingField:
<IngredientAmount3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}

View File

@ -12,100 +12,112 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: e22dd2055785c2f4dadcf76fb593edf4, type: 3} m_Script: {fileID: 11500000, guid: e22dd2055785c2f4dadcf76fb593edf4, type: 3}
m_Name: FoodDataTable m_Name: FoodDataTable
m_EditorClassIdentifier: m_EditorClassIdentifier:
<Datas>k__BackingField: _serializedDataList:
- <Idx>k__BackingField: 30001 - <Key>k__BackingField: 30001
<Name>k__BackingField: "\uC2AC\uB77C\uC784 \uD478\uB529" <Value>k__BackingField:
<Type>k__BackingField: 4 <Idx>k__BackingField: 30001
<Taste>k__BackingField: 4 <Name>k__BackingField: "\uC2AC\uB77C\uC784 \uD478\uB529"
<CookGauge>k__BackingField: 20 <Type>k__BackingField: 4
<Plate>k__BackingField: 10 <Taste>k__BackingField: 4
<IngredientIdx1>k__BackingField: 10108 <CookGauge>k__BackingField: 20
<IngredientQuantity1>k__BackingField: 1 <Plate>k__BackingField: 10
<IngredientIdx2>k__BackingField: 10706 <IngredientIdx1>k__BackingField: 10108
<IngredientQuantity2>k__BackingField: 1 <IngredientQuantity1>k__BackingField: 1
<IngredientIdx3>k__BackingField: <IngredientIdx2>k__BackingField: 10706
<IngredientQuantity3>k__BackingField: 0 <IngredientQuantity2>k__BackingField: 1
<IngredientIdx4>k__BackingField: <IngredientIdx3>k__BackingField:
<IngredientQuantity4>k__BackingField: 0 <IngredientQuantity3>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx4>k__BackingField:
<IngredientQuantity5>k__BackingField: 0 <IngredientQuantity4>k__BackingField: 0
- <Idx>k__BackingField: 30002 <IngredientIdx5>k__BackingField:
<Name>k__BackingField: "\uC5BC\uC74C\uB3C4\uCE58 \uD325\uBE59\uC218" <IngredientQuantity5>k__BackingField: 0
<Type>k__BackingField: 4 - <Key>k__BackingField: 30002
<Taste>k__BackingField: 4 <Value>k__BackingField:
<CookGauge>k__BackingField: 20 <Idx>k__BackingField: 30002
<Plate>k__BackingField: 10 <Name>k__BackingField: "\uC5BC\uC74C\uB3C4\uCE58 \uD325\uBE59\uC218"
<IngredientIdx1>k__BackingField: 10109 <Type>k__BackingField: 4
<IngredientQuantity1>k__BackingField: 1 <Taste>k__BackingField: 4
<IngredientIdx2>k__BackingField: 10706 <CookGauge>k__BackingField: 20
<IngredientQuantity2>k__BackingField: 1 <Plate>k__BackingField: 10
<IngredientIdx3>k__BackingField: <IngredientIdx1>k__BackingField: 10109
<IngredientQuantity3>k__BackingField: 0 <IngredientQuantity1>k__BackingField: 1
<IngredientIdx4>k__BackingField: <IngredientIdx2>k__BackingField: 10706
<IngredientQuantity4>k__BackingField: 0 <IngredientQuantity2>k__BackingField: 1
<IngredientIdx5>k__BackingField: <IngredientIdx3>k__BackingField:
<IngredientQuantity5>k__BackingField: 0 <IngredientQuantity3>k__BackingField: 0
- <Idx>k__BackingField: 30003 <IngredientIdx4>k__BackingField:
<Name>k__BackingField: "\uCF54\uBFD4\uC18C \uBFD4 \uD280\uAE40" <IngredientQuantity4>k__BackingField: 0
<Type>k__BackingField: 2 <IngredientIdx5>k__BackingField:
<Taste>k__BackingField: 4 <IngredientQuantity5>k__BackingField: 0
<CookGauge>k__BackingField: 20 - <Key>k__BackingField: 30003
<Plate>k__BackingField: 10 <Value>k__BackingField:
<IngredientIdx1>k__BackingField: 10106 <Idx>k__BackingField: 30003
<IngredientQuantity1>k__BackingField: 1 <Name>k__BackingField: "\uCF54\uBFD4\uC18C \uBFD4 \uD280\uAE40"
<IngredientIdx2>k__BackingField: 10506 <Type>k__BackingField: 2
<IngredientQuantity2>k__BackingField: 1 <Taste>k__BackingField: 4
<IngredientIdx3>k__BackingField: 10704 <CookGauge>k__BackingField: 20
<IngredientQuantity3>k__BackingField: 1 <Plate>k__BackingField: 10
<IngredientIdx4>k__BackingField: <IngredientIdx1>k__BackingField: 10106
<IngredientQuantity4>k__BackingField: 0 <IngredientQuantity1>k__BackingField: 1
<IngredientIdx5>k__BackingField: <IngredientIdx2>k__BackingField: 10506
<IngredientQuantity5>k__BackingField: 0 <IngredientQuantity2>k__BackingField: 1
- <Idx>k__BackingField: 30004 <IngredientIdx3>k__BackingField: 10704
<Name>k__BackingField: "\uCF54\uBFD4\uC18C \uB4B7\uB2E4\uB9AC \uACE0\uAE30" <IngredientQuantity3>k__BackingField: 1
<Type>k__BackingField: 3 <IngredientIdx4>k__BackingField:
<Taste>k__BackingField: 1 <IngredientQuantity4>k__BackingField: 0
<CookGauge>k__BackingField: 40 <IngredientIdx5>k__BackingField:
<Plate>k__BackingField: 10 <IngredientQuantity5>k__BackingField: 0
<IngredientIdx1>k__BackingField: 10107 - <Key>k__BackingField: 30004
<IngredientQuantity1>k__BackingField: 1 <Value>k__BackingField:
<IngredientIdx2>k__BackingField: 10507 <Idx>k__BackingField: 30004
<IngredientQuantity2>k__BackingField: 1 <Name>k__BackingField: "\uCF54\uBFD4\uC18C \uB4B7\uB2E4\uB9AC \uACE0\uAE30"
<IngredientIdx3>k__BackingField: 10701 <Type>k__BackingField: 3
<IngredientQuantity3>k__BackingField: 1 <Taste>k__BackingField: 1
<IngredientIdx4>k__BackingField: <CookGauge>k__BackingField: 40
<IngredientQuantity4>k__BackingField: 0 <Plate>k__BackingField: 10
<IngredientIdx5>k__BackingField: <IngredientIdx1>k__BackingField: 10107
<IngredientQuantity5>k__BackingField: 0 <IngredientQuantity1>k__BackingField: 1
- <Idx>k__BackingField: 30005 <IngredientIdx2>k__BackingField: 10507
<Name>k__BackingField: "\uBC31\uC0C1\uC5B4 \uD1B5\uAD6C\uC774" <IngredientQuantity2>k__BackingField: 1
<Type>k__BackingField: 1 <IngredientIdx3>k__BackingField: 10701
<Taste>k__BackingField: 1 <IngredientQuantity3>k__BackingField: 1
<CookGauge>k__BackingField: 20 <IngredientIdx4>k__BackingField:
<Plate>k__BackingField: 10 <IngredientQuantity4>k__BackingField: 0
<IngredientIdx1>k__BackingField: 10201 <IngredientIdx5>k__BackingField:
<IngredientQuantity1>k__BackingField: 1 <IngredientQuantity5>k__BackingField: 0
<IngredientIdx2>k__BackingField: 10404 - <Key>k__BackingField: 30005
<IngredientQuantity2>k__BackingField: 1 <Value>k__BackingField:
<IngredientIdx3>k__BackingField: 10508 <Idx>k__BackingField: 30005
<IngredientQuantity3>k__BackingField: 1 <Name>k__BackingField: "\uBC31\uC0C1\uC5B4 \uD1B5\uAD6C\uC774"
<IngredientIdx4>k__BackingField: 10704 <Type>k__BackingField: 1
<IngredientQuantity4>k__BackingField: 1 <Taste>k__BackingField: 1
<IngredientIdx5>k__BackingField: <CookGauge>k__BackingField: 20
<IngredientQuantity5>k__BackingField: 0 <Plate>k__BackingField: 10
- <Idx>k__BackingField: 30006 <IngredientIdx1>k__BackingField: 10201
<Name>k__BackingField: "\uBC84\uD130 \uC870\uAC1C \uAD6C\uC774" <IngredientQuantity1>k__BackingField: 1
<Type>k__BackingField: 3 <IngredientIdx2>k__BackingField: 10404
<Taste>k__BackingField: 4 <IngredientQuantity2>k__BackingField: 1
<CookGauge>k__BackingField: 25 <IngredientIdx3>k__BackingField: 10508
<Plate>k__BackingField: 10 <IngredientQuantity3>k__BackingField: 1
<IngredientIdx1>k__BackingField: 10603 <IngredientIdx4>k__BackingField: 10704
<IngredientQuantity1>k__BackingField: 1 <IngredientQuantity4>k__BackingField: 1
<IngredientIdx2>k__BackingField: 10503 <IngredientIdx5>k__BackingField:
<IngredientQuantity2>k__BackingField: 1 <IngredientQuantity5>k__BackingField: 0
<IngredientIdx3>k__BackingField: 10705 - <Key>k__BackingField: 30006
<IngredientQuantity3>k__BackingField: 1 <Value>k__BackingField:
<IngredientIdx4>k__BackingField: <Idx>k__BackingField: 30006
<IngredientQuantity4>k__BackingField: 0 <Name>k__BackingField: "\uBC84\uD130 \uC870\uAC1C \uAD6C\uC774"
<IngredientIdx5>k__BackingField: <Type>k__BackingField: 3
<IngredientQuantity5>k__BackingField: 0 <Taste>k__BackingField: 4
<CookGauge>k__BackingField: 25
<Plate>k__BackingField: 10
<IngredientIdx1>k__BackingField: 10603
<IngredientQuantity1>k__BackingField: 1
<IngredientIdx2>k__BackingField: 10503
<IngredientQuantity2>k__BackingField: 1
<IngredientIdx3>k__BackingField: 10705
<IngredientQuantity3>k__BackingField: 1
<IngredientIdx4>k__BackingField:
<IngredientQuantity4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientQuantity5>k__BackingField: 0

File diff suppressed because it is too large Load Diff

View File

@ -12,80 +12,90 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 9b4027f974cd5234690df1b35ca492ac, type: 3} m_Script: {fileID: 11500000, guid: 9b4027f974cd5234690df1b35ca492ac, type: 3}
m_Name: ItemDropTable m_Name: ItemDropTable
m_EditorClassIdentifier: m_EditorClassIdentifier:
ItemDropTables: _serializedDataList:
- <CharacterData>k__BackingField: - <Key>k__BackingField: 1
<CharacterIdx>k__BackingField: 1 <Value>k__BackingField:
<Name>k__BackingField: "\uD0C0\uC774\uD0C4 \uC2AC\uB77C\uC784" <CharacterData>k__BackingField:
<DropItems>k__BackingField: <CharacterIdx>k__BackingField: 1
- <ItemIdx>k__BackingField: 50002 <Name>k__BackingField: "\uD0C0\uC774\uD0C4 \uC2AC\uB77C\uC784"
<DropRate>k__BackingField: 100 <DropItems>k__BackingField:
<QuantityMin>k__BackingField: 1 - <ItemIdx>k__BackingField: 50002
<QuantityMax>k__BackingField: 1 <DropRate>k__BackingField: 100
- <ItemIdx>k__BackingField: 50002 <QuantityMin>k__BackingField: 1
<DropRate>k__BackingField: 100 <QuantityMax>k__BackingField: 1
<QuantityMin>k__BackingField: 1 - <ItemIdx>k__BackingField: 50002
<QuantityMax>k__BackingField: 1 <DropRate>k__BackingField: 100
- <ItemIdx>k__BackingField: 50001 <QuantityMin>k__BackingField: 1
<DropRate>k__BackingField: 100 <QuantityMax>k__BackingField: 1
<QuantityMin>k__BackingField: 1 - <ItemIdx>k__BackingField: 50001
<QuantityMax>k__BackingField: 1 <DropRate>k__BackingField: 100
- <ItemIdx>k__BackingField: 60001 <QuantityMin>k__BackingField: 1
<DropRate>k__BackingField: 100 <QuantityMax>k__BackingField: 1
<QuantityMin>k__BackingField: 1 - <ItemIdx>k__BackingField: 60001
<QuantityMax>k__BackingField: 1 <DropRate>k__BackingField: 100
- <CharacterData>k__BackingField: <QuantityMin>k__BackingField: 1
<CharacterIdx>k__BackingField: 2 <QuantityMax>k__BackingField: 1
<Name>k__BackingField: "\uCF54\uBFD4\uC18C" - <Key>k__BackingField: 2
<DropItems>k__BackingField: <Value>k__BackingField:
- <ItemIdx>k__BackingField: 50002 <CharacterData>k__BackingField:
<DropRate>k__BackingField: 100 <CharacterIdx>k__BackingField: 2
<QuantityMin>k__BackingField: 1 <Name>k__BackingField: "\uCF54\uBFD4\uC18C"
<QuantityMax>k__BackingField: 1 <DropItems>k__BackingField:
- <ItemIdx>k__BackingField: 50002 - <ItemIdx>k__BackingField: 50002
<DropRate>k__BackingField: 100 <DropRate>k__BackingField: 100
<QuantityMin>k__BackingField: 1 <QuantityMin>k__BackingField: 1
<QuantityMax>k__BackingField: 1 <QuantityMax>k__BackingField: 1
- <ItemIdx>k__BackingField: 50001 - <ItemIdx>k__BackingField: 50002
<DropRate>k__BackingField: 100 <DropRate>k__BackingField: 100
<QuantityMin>k__BackingField: 1 <QuantityMin>k__BackingField: 1
<QuantityMax>k__BackingField: 1 <QuantityMax>k__BackingField: 1
- <CharacterData>k__BackingField: - <ItemIdx>k__BackingField: 50001
<CharacterIdx>k__BackingField: 3 <DropRate>k__BackingField: 100
<Name>k__BackingField: "\uBAA8\uB798 \uB450\uB354\uC9C0" <QuantityMin>k__BackingField: 1
<DropItems>k__BackingField: <QuantityMax>k__BackingField: 1
- <ItemIdx>k__BackingField: 50002 - <Key>k__BackingField: 3
<DropRate>k__BackingField: 100 <Value>k__BackingField:
<QuantityMin>k__BackingField: 1 <CharacterData>k__BackingField:
<QuantityMax>k__BackingField: 1 <CharacterIdx>k__BackingField: 3
- <ItemIdx>k__BackingField: 50002 <Name>k__BackingField: "\uBAA8\uB798 \uB450\uB354\uC9C0"
<DropRate>k__BackingField: 100 <DropItems>k__BackingField:
<QuantityMin>k__BackingField: 1 - <ItemIdx>k__BackingField: 50002
<QuantityMax>k__BackingField: 1 <DropRate>k__BackingField: 100
- <ItemIdx>k__BackingField: 50001 <QuantityMin>k__BackingField: 1
<DropRate>k__BackingField: 100 <QuantityMax>k__BackingField: 1
<QuantityMin>k__BackingField: 1 - <ItemIdx>k__BackingField: 50002
<QuantityMax>k__BackingField: 1 <DropRate>k__BackingField: 100
- <CharacterData>k__BackingField: <QuantityMin>k__BackingField: 1
<CharacterIdx>k__BackingField: 4 <QuantityMax>k__BackingField: 1
<Name>k__BackingField: "\uC220\uD1B5 \uC720\uB839" - <ItemIdx>k__BackingField: 50001
<DropItems>k__BackingField: <DropRate>k__BackingField: 100
- <ItemIdx>k__BackingField: 50002 <QuantityMin>k__BackingField: 1
<DropRate>k__BackingField: 100 <QuantityMax>k__BackingField: 1
<QuantityMin>k__BackingField: 1 - <Key>k__BackingField: 4
<QuantityMax>k__BackingField: 1 <Value>k__BackingField:
- <ItemIdx>k__BackingField: 50002 <CharacterData>k__BackingField:
<DropRate>k__BackingField: 100 <CharacterIdx>k__BackingField: 4
<QuantityMin>k__BackingField: 1 <Name>k__BackingField: "\uC220\uD1B5 \uC720\uB839"
<QuantityMax>k__BackingField: 1 <DropItems>k__BackingField:
- <ItemIdx>k__BackingField: 50001 - <ItemIdx>k__BackingField: 50002
<DropRate>k__BackingField: 100 <DropRate>k__BackingField: 100
<QuantityMin>k__BackingField: 1 <QuantityMin>k__BackingField: 1
<QuantityMax>k__BackingField: 1 <QuantityMax>k__BackingField: 1
- <CharacterData>k__BackingField: - <ItemIdx>k__BackingField: 50002
<CharacterIdx>k__BackingField: 101 <DropRate>k__BackingField: 100
<Name>k__BackingField: "\uD480" <QuantityMin>k__BackingField: 1
<DropItems>k__BackingField: <QuantityMax>k__BackingField: 1
- <ItemIdx>k__BackingField: 60002 - <ItemIdx>k__BackingField: 50001
<DropRate>k__BackingField: 40 <DropRate>k__BackingField: 100
<QuantityMin>k__BackingField: 1 <QuantityMin>k__BackingField: 1
<QuantityMax>k__BackingField: 5 <QuantityMax>k__BackingField: 1
- <Key>k__BackingField: 101
<Value>k__BackingField:
<CharacterData>k__BackingField:
<CharacterIdx>k__BackingField: 101
<Name>k__BackingField: "\uD480"
<DropItems>k__BackingField:
- <ItemIdx>k__BackingField: 60002
<DropRate>k__BackingField: 40
<QuantityMin>k__BackingField: 1
<QuantityMax>k__BackingField: 5

View File

@ -12,39 +12,53 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1f91e197a0d142b40ae1ec8bd1300fb3, type: 3} m_Script: {fileID: 11500000, guid: 1f91e197a0d142b40ae1ec8bd1300fb3, type: 3}
m_Name: LiquidDataTable m_Name: LiquidDataTable
m_EditorClassIdentifier: m_EditorClassIdentifier:
<Datas>k__BackingField: _serializedDataList:
- <Idx>k__BackingField: Garnish1 - <Key>k__BackingField: LiquidA
<Name>k__BackingField: "\uAC00\uB098\uC26C1" <Value>k__BackingField:
<Amount>k__BackingField: 2000 <Idx>k__BackingField: LiquidA
<Sprite>k__BackingField: {fileID: 0} <Name>k__BackingField: "\uC220 \uC6D0\uC561A"
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 1} <Amount>k__BackingField: 99999
- <Idx>k__BackingField: Garnish2 <Sprite>k__BackingField: {fileID: 0}
<Name>k__BackingField: "\uAC00\uB098\uC26C2" <Color>k__BackingField: {r: 1, g: 0, b: 0, a: 1}
<Amount>k__BackingField: 2000 - <Key>k__BackingField: LiquidB
<Sprite>k__BackingField: {fileID: 0} <Value>k__BackingField:
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 1} <Idx>k__BackingField: LiquidB
- <Idx>k__BackingField: LiquidA <Name>k__BackingField: "\uC220 \uC6D0\uC561B"
<Name>k__BackingField: "\uC220 \uC6D0\uC561A" <Amount>k__BackingField: 2000
<Amount>k__BackingField: 99999 <Sprite>k__BackingField: {fileID: 0}
<Sprite>k__BackingField: {fileID: 0} <Color>k__BackingField: {r: 1, g: 0.5019608, b: 0, a: 1}
<Color>k__BackingField: {r: 1, g: 0, b: 0, a: 1} - <Key>k__BackingField: LiquidC
- <Idx>k__BackingField: LiquidB <Value>k__BackingField:
<Name>k__BackingField: "\uC220 \uC6D0\uC561B" <Idx>k__BackingField: LiquidC
<Amount>k__BackingField: 2000 <Name>k__BackingField: "\uC220 \uC6D0\uC561C"
<Sprite>k__BackingField: {fileID: 0} <Amount>k__BackingField: 2000
<Color>k__BackingField: {r: 1, g: 0.5019608, b: 0, a: 1} <Sprite>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: LiquidC <Color>k__BackingField: {r: 1, g: 1, b: 0, a: 1}
<Name>k__BackingField: "\uC220 \uC6D0\uC561C" - <Key>k__BackingField: LiquidD
<Amount>k__BackingField: 2000 <Value>k__BackingField:
<Sprite>k__BackingField: {fileID: 0} <Idx>k__BackingField: LiquidD
<Color>k__BackingField: {r: 1, g: 1, b: 0, a: 1} <Name>k__BackingField: "\uC220 \uC6D0\uC561D"
- <Idx>k__BackingField: LiquidD <Amount>k__BackingField: 2000
<Name>k__BackingField: "\uC220 \uC6D0\uC561D" <Sprite>k__BackingField: {fileID: 0}
<Amount>k__BackingField: 2000 <Color>k__BackingField: {r: 0, g: 1, b: 0, a: 1}
<Sprite>k__BackingField: {fileID: 0} - <Key>k__BackingField: LiquidE
<Color>k__BackingField: {r: 0, g: 1, b: 0, a: 1} <Value>k__BackingField:
- <Idx>k__BackingField: LiquidE <Idx>k__BackingField: LiquidE
<Name>k__BackingField: "\uC220 \uC6D0\uC561E" <Name>k__BackingField: "\uC220 \uC6D0\uC561E"
<Amount>k__BackingField: 2000 <Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 1, a: 1} <Color>k__BackingField: {r: 0, g: 0, b: 1, a: 1}
- <Key>k__BackingField: Garnish1
<Value>k__BackingField:
<Idx>k__BackingField: Garnish1
<Name>k__BackingField: "\uAC00\uB098\uC26C1"
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
- <Key>k__BackingField: Garnish2
<Value>k__BackingField:
<Idx>k__BackingField: Garnish2
<Name>k__BackingField: "\uAC00\uB098\uC26C2"
<Amount>k__BackingField: 2000
<Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}

View File

@ -12,364 +12,444 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4291963c8b013de498435ab3a9250323, type: 3} m_Script: {fileID: 11500000, guid: 4291963c8b013de498435ab3a9250323, type: 3}
m_Name: LevelDataTable m_Name: LevelDataTable
m_EditorClassIdentifier: m_EditorClassIdentifier:
<Datas>k__BackingField: _serializedDataList:
- <Idx>k__BackingField: 1 - <Key>k__BackingField: 1
<CustomerRespawn>k__BackingField: 15 <Value>k__BackingField:
<Gold>k__BackingField: 100 <Idx>k__BackingField: 1
<Exp>k__BackingField: 100 <CustomerRespawn>k__BackingField: 15
<RequiredExp>k__BackingField: 200 <Gold>k__BackingField: 100
<WaitTime>k__BackingField: 20 <Exp>k__BackingField: 100
<HurryTime>k__BackingField: 20 <RequiredExp>k__BackingField: 200
<EatingTime>k__BackingField: 10 <WaitTime>k__BackingField: 20
<OpenUpgrade>k__BackingField: <HurryTime>k__BackingField: 20
- <Idx>k__BackingField: 10 <EatingTime>k__BackingField: 10
<CustomerRespawn>k__BackingField: 13 <OpenUpgrade>k__BackingField:
<Gold>k__BackingField: 100 - <Key>k__BackingField: 2
<Exp>k__BackingField: 100 <Value>k__BackingField:
<RequiredExp>k__BackingField: 1100 <Idx>k__BackingField: 2
<WaitTime>k__BackingField: 16 <CustomerRespawn>k__BackingField: 15
<HurryTime>k__BackingField: 15 <Gold>k__BackingField: 100
<EatingTime>k__BackingField: 10 <Exp>k__BackingField: 100
<OpenUpgrade>k__BackingField: Upgrade2 <RequiredExp>k__BackingField: 300
- <Idx>k__BackingField: 11 <WaitTime>k__BackingField: 20
<CustomerRespawn>k__BackingField: 11 <HurryTime>k__BackingField: 19
<Gold>k__BackingField: 100 <EatingTime>k__BackingField: 10
<Exp>k__BackingField: 100 <OpenUpgrade>k__BackingField:
<RequiredExp>k__BackingField: 1200 - <Key>k__BackingField: 3
<WaitTime>k__BackingField: 15 <Value>k__BackingField:
<HurryTime>k__BackingField: 14 <Idx>k__BackingField: 3
<EatingTime>k__BackingField: 8 <CustomerRespawn>k__BackingField: 15
<OpenUpgrade>k__BackingField: <Gold>k__BackingField: 100
- <Idx>k__BackingField: 12 <Exp>k__BackingField: 100
<CustomerRespawn>k__BackingField: 11 <RequiredExp>k__BackingField: 400
<Gold>k__BackingField: 100 <WaitTime>k__BackingField: 20
<Exp>k__BackingField: 100 <HurryTime>k__BackingField: 18
<RequiredExp>k__BackingField: 1300 <EatingTime>k__BackingField: 10
<WaitTime>k__BackingField: 15 <OpenUpgrade>k__BackingField:
<HurryTime>k__BackingField: 13 - <Key>k__BackingField: 4
<EatingTime>k__BackingField: 8 <Value>k__BackingField:
<OpenUpgrade>k__BackingField: <Idx>k__BackingField: 4
- <Idx>k__BackingField: 13 <CustomerRespawn>k__BackingField: 15
<CustomerRespawn>k__BackingField: 11 <Gold>k__BackingField: 100
<Gold>k__BackingField: 100 <Exp>k__BackingField: 100
<Exp>k__BackingField: 100 <RequiredExp>k__BackingField: 500
<RequiredExp>k__BackingField: 1400 <WaitTime>k__BackingField: 20
<WaitTime>k__BackingField: 15 <HurryTime>k__BackingField: 17
<HurryTime>k__BackingField: 12 <EatingTime>k__BackingField: 10
<EatingTime>k__BackingField: 8 <OpenUpgrade>k__BackingField:
<OpenUpgrade>k__BackingField: - <Key>k__BackingField: 5
- <Idx>k__BackingField: 14 <Value>k__BackingField:
<CustomerRespawn>k__BackingField: 11 <Idx>k__BackingField: 5
<Gold>k__BackingField: 100 <CustomerRespawn>k__BackingField: 15
<Exp>k__BackingField: 100 <Gold>k__BackingField: 100
<RequiredExp>k__BackingField: 1500 <Exp>k__BackingField: 100
<WaitTime>k__BackingField: 15 <RequiredExp>k__BackingField: 600
<HurryTime>k__BackingField: 11 <WaitTime>k__BackingField: 20
<EatingTime>k__BackingField: 8 <HurryTime>k__BackingField: 16
<OpenUpgrade>k__BackingField: <EatingTime>k__BackingField: 10
- <Idx>k__BackingField: 15 <OpenUpgrade>k__BackingField: Upgrade1
<CustomerRespawn>k__BackingField: 11 - <Key>k__BackingField: 6
<Gold>k__BackingField: 100 <Value>k__BackingField:
<Exp>k__BackingField: 100 <Idx>k__BackingField: 6
<RequiredExp>k__BackingField: 1600 <CustomerRespawn>k__BackingField: 13
<WaitTime>k__BackingField: 15 <Gold>k__BackingField: 100
<HurryTime>k__BackingField: 10 <Exp>k__BackingField: 100
<EatingTime>k__BackingField: 8 <RequiredExp>k__BackingField: 700
<OpenUpgrade>k__BackingField: Upgrade3 <WaitTime>k__BackingField: 20
- <Idx>k__BackingField: 16 <HurryTime>k__BackingField: 15
<CustomerRespawn>k__BackingField: 9 <EatingTime>k__BackingField: 10
<Gold>k__BackingField: 100 <OpenUpgrade>k__BackingField:
<Exp>k__BackingField: 100 - <Key>k__BackingField: 7
<RequiredExp>k__BackingField: 1700 <Value>k__BackingField:
<WaitTime>k__BackingField: 15 <Idx>k__BackingField: 7
<HurryTime>k__BackingField: 10 <CustomerRespawn>k__BackingField: 13
<EatingTime>k__BackingField: 8 <Gold>k__BackingField: 100
<OpenUpgrade>k__BackingField: <Exp>k__BackingField: 100
- <Idx>k__BackingField: 17 <RequiredExp>k__BackingField: 800
<CustomerRespawn>k__BackingField: 9 <WaitTime>k__BackingField: 19
<Gold>k__BackingField: 100 <HurryTime>k__BackingField: 15
<Exp>k__BackingField: 100 <EatingTime>k__BackingField: 10
<RequiredExp>k__BackingField: 1800 <OpenUpgrade>k__BackingField:
<WaitTime>k__BackingField: 14 - <Key>k__BackingField: 8
<HurryTime>k__BackingField: 10 <Value>k__BackingField:
<EatingTime>k__BackingField: 8 <Idx>k__BackingField: 8
<OpenUpgrade>k__BackingField: <CustomerRespawn>k__BackingField: 13
- <Idx>k__BackingField: 18 <Gold>k__BackingField: 100
<CustomerRespawn>k__BackingField: 9 <Exp>k__BackingField: 100
<Gold>k__BackingField: 100 <RequiredExp>k__BackingField: 900
<Exp>k__BackingField: 100 <WaitTime>k__BackingField: 18
<RequiredExp>k__BackingField: 1900 <HurryTime>k__BackingField: 15
<WaitTime>k__BackingField: 13 <EatingTime>k__BackingField: 10
<HurryTime>k__BackingField: 10 <OpenUpgrade>k__BackingField:
<EatingTime>k__BackingField: 8 - <Key>k__BackingField: 9
<OpenUpgrade>k__BackingField: <Value>k__BackingField:
- <Idx>k__BackingField: 19 <Idx>k__BackingField: 9
<CustomerRespawn>k__BackingField: 9 <CustomerRespawn>k__BackingField: 13
<Gold>k__BackingField: 100 <Gold>k__BackingField: 100
<Exp>k__BackingField: 100 <Exp>k__BackingField: 100
<RequiredExp>k__BackingField: 2000 <RequiredExp>k__BackingField: 1000
<WaitTime>k__BackingField: 12 <WaitTime>k__BackingField: 17
<HurryTime>k__BackingField: 10 <HurryTime>k__BackingField: 15
<EatingTime>k__BackingField: 8 <EatingTime>k__BackingField: 10
<OpenUpgrade>k__BackingField: <OpenUpgrade>k__BackingField:
- <Idx>k__BackingField: 2 - <Key>k__BackingField: 10
<CustomerRespawn>k__BackingField: 15 <Value>k__BackingField:
<Gold>k__BackingField: 100 <Idx>k__BackingField: 10
<Exp>k__BackingField: 100 <CustomerRespawn>k__BackingField: 13
<RequiredExp>k__BackingField: 300 <Gold>k__BackingField: 100
<WaitTime>k__BackingField: 20 <Exp>k__BackingField: 100
<HurryTime>k__BackingField: 19 <RequiredExp>k__BackingField: 1100
<EatingTime>k__BackingField: 10 <WaitTime>k__BackingField: 16
<OpenUpgrade>k__BackingField: <HurryTime>k__BackingField: 15
- <Idx>k__BackingField: 20 <EatingTime>k__BackingField: 10
<CustomerRespawn>k__BackingField: 9 <OpenUpgrade>k__BackingField: Upgrade2
<Gold>k__BackingField: 100 - <Key>k__BackingField: 11
<Exp>k__BackingField: 100 <Value>k__BackingField:
<RequiredExp>k__BackingField: 2100 <Idx>k__BackingField: 11
<WaitTime>k__BackingField: 11 <CustomerRespawn>k__BackingField: 11
<HurryTime>k__BackingField: 10 <Gold>k__BackingField: 100
<EatingTime>k__BackingField: 8 <Exp>k__BackingField: 100
<OpenUpgrade>k__BackingField: Upgrade4 <RequiredExp>k__BackingField: 1200
- <Idx>k__BackingField: 21 <WaitTime>k__BackingField: 15
<CustomerRespawn>k__BackingField: 7 <HurryTime>k__BackingField: 14
<Gold>k__BackingField: 100 <EatingTime>k__BackingField: 8
<Exp>k__BackingField: 100 <OpenUpgrade>k__BackingField:
<RequiredExp>k__BackingField: 2200 - <Key>k__BackingField: 12
<WaitTime>k__BackingField: 10 <Value>k__BackingField:
<HurryTime>k__BackingField: 10 <Idx>k__BackingField: 12
<EatingTime>k__BackingField: 6 <CustomerRespawn>k__BackingField: 11
<OpenUpgrade>k__BackingField: <Gold>k__BackingField: 100
- <Idx>k__BackingField: 22 <Exp>k__BackingField: 100
<CustomerRespawn>k__BackingField: 7 <RequiredExp>k__BackingField: 1300
<Gold>k__BackingField: 100 <WaitTime>k__BackingField: 15
<Exp>k__BackingField: 100 <HurryTime>k__BackingField: 13
<RequiredExp>k__BackingField: 2300 <EatingTime>k__BackingField: 8
<WaitTime>k__BackingField: 10 <OpenUpgrade>k__BackingField:
<HurryTime>k__BackingField: 9 - <Key>k__BackingField: 13
<EatingTime>k__BackingField: 6 <Value>k__BackingField:
<OpenUpgrade>k__BackingField: <Idx>k__BackingField: 13
- <Idx>k__BackingField: 23 <CustomerRespawn>k__BackingField: 11
<CustomerRespawn>k__BackingField: 7 <Gold>k__BackingField: 100
<Gold>k__BackingField: 100 <Exp>k__BackingField: 100
<Exp>k__BackingField: 100 <RequiredExp>k__BackingField: 1400
<RequiredExp>k__BackingField: 2400 <WaitTime>k__BackingField: 15
<WaitTime>k__BackingField: 10 <HurryTime>k__BackingField: 12
<HurryTime>k__BackingField: 8 <EatingTime>k__BackingField: 8
<EatingTime>k__BackingField: 6 <OpenUpgrade>k__BackingField:
<OpenUpgrade>k__BackingField: - <Key>k__BackingField: 14
- <Idx>k__BackingField: 24 <Value>k__BackingField:
<CustomerRespawn>k__BackingField: 7 <Idx>k__BackingField: 14
<Gold>k__BackingField: 100 <CustomerRespawn>k__BackingField: 11
<Exp>k__BackingField: 100 <Gold>k__BackingField: 100
<RequiredExp>k__BackingField: 2500 <Exp>k__BackingField: 100
<WaitTime>k__BackingField: 10 <RequiredExp>k__BackingField: 1500
<HurryTime>k__BackingField: 7 <WaitTime>k__BackingField: 15
<EatingTime>k__BackingField: 6 <HurryTime>k__BackingField: 11
<OpenUpgrade>k__BackingField: <EatingTime>k__BackingField: 8
- <Idx>k__BackingField: 25 <OpenUpgrade>k__BackingField:
<CustomerRespawn>k__BackingField: 7 - <Key>k__BackingField: 15
<Gold>k__BackingField: 100 <Value>k__BackingField:
<Exp>k__BackingField: 100 <Idx>k__BackingField: 15
<RequiredExp>k__BackingField: 2600 <CustomerRespawn>k__BackingField: 11
<WaitTime>k__BackingField: 10 <Gold>k__BackingField: 100
<HurryTime>k__BackingField: 6 <Exp>k__BackingField: 100
<EatingTime>k__BackingField: 6 <RequiredExp>k__BackingField: 1600
<OpenUpgrade>k__BackingField: Upgrade5 <WaitTime>k__BackingField: 15
- <Idx>k__BackingField: 26 <HurryTime>k__BackingField: 10
<CustomerRespawn>k__BackingField: 5 <EatingTime>k__BackingField: 8
<Gold>k__BackingField: 100 <OpenUpgrade>k__BackingField: Upgrade3
<Exp>k__BackingField: 100 - <Key>k__BackingField: 16
<RequiredExp>k__BackingField: 2700 <Value>k__BackingField:
<WaitTime>k__BackingField: 10 <Idx>k__BackingField: 16
<HurryTime>k__BackingField: 5 <CustomerRespawn>k__BackingField: 9
<EatingTime>k__BackingField: 6 <Gold>k__BackingField: 100
<OpenUpgrade>k__BackingField: <Exp>k__BackingField: 100
- <Idx>k__BackingField: 27 <RequiredExp>k__BackingField: 1700
<CustomerRespawn>k__BackingField: 5 <WaitTime>k__BackingField: 15
<Gold>k__BackingField: 100 <HurryTime>k__BackingField: 10
<Exp>k__BackingField: 100 <EatingTime>k__BackingField: 8
<RequiredExp>k__BackingField: 2800 <OpenUpgrade>k__BackingField:
<WaitTime>k__BackingField: 10 - <Key>k__BackingField: 17
<HurryTime>k__BackingField: 5 <Value>k__BackingField:
<EatingTime>k__BackingField: 6 <Idx>k__BackingField: 17
<OpenUpgrade>k__BackingField: <CustomerRespawn>k__BackingField: 9
- <Idx>k__BackingField: 28 <Gold>k__BackingField: 100
<CustomerRespawn>k__BackingField: 5 <Exp>k__BackingField: 100
<Gold>k__BackingField: 100 <RequiredExp>k__BackingField: 1800
<Exp>k__BackingField: 100 <WaitTime>k__BackingField: 14
<RequiredExp>k__BackingField: 2900 <HurryTime>k__BackingField: 10
<WaitTime>k__BackingField: 10 <EatingTime>k__BackingField: 8
<HurryTime>k__BackingField: 5 <OpenUpgrade>k__BackingField:
<EatingTime>k__BackingField: 6 - <Key>k__BackingField: 18
<OpenUpgrade>k__BackingField: <Value>k__BackingField:
- <Idx>k__BackingField: 29 <Idx>k__BackingField: 18
<CustomerRespawn>k__BackingField: 5 <CustomerRespawn>k__BackingField: 9
<Gold>k__BackingField: 100 <Gold>k__BackingField: 100
<Exp>k__BackingField: 100 <Exp>k__BackingField: 100
<RequiredExp>k__BackingField: 3000 <RequiredExp>k__BackingField: 1900
<WaitTime>k__BackingField: 10 <WaitTime>k__BackingField: 13
<HurryTime>k__BackingField: 5 <HurryTime>k__BackingField: 10
<EatingTime>k__BackingField: 6 <EatingTime>k__BackingField: 8
<OpenUpgrade>k__BackingField: <OpenUpgrade>k__BackingField:
- <Idx>k__BackingField: 3 - <Key>k__BackingField: 19
<CustomerRespawn>k__BackingField: 15 <Value>k__BackingField:
<Gold>k__BackingField: 100 <Idx>k__BackingField: 19
<Exp>k__BackingField: 100 <CustomerRespawn>k__BackingField: 9
<RequiredExp>k__BackingField: 400 <Gold>k__BackingField: 100
<WaitTime>k__BackingField: 20 <Exp>k__BackingField: 100
<HurryTime>k__BackingField: 18 <RequiredExp>k__BackingField: 2000
<EatingTime>k__BackingField: 10 <WaitTime>k__BackingField: 12
<OpenUpgrade>k__BackingField: <HurryTime>k__BackingField: 10
- <Idx>k__BackingField: 30 <EatingTime>k__BackingField: 8
<CustomerRespawn>k__BackingField: 5 <OpenUpgrade>k__BackingField:
<Gold>k__BackingField: 100 - <Key>k__BackingField: 20
<Exp>k__BackingField: 100 <Value>k__BackingField:
<RequiredExp>k__BackingField: 3100 <Idx>k__BackingField: 20
<WaitTime>k__BackingField: 10 <CustomerRespawn>k__BackingField: 9
<HurryTime>k__BackingField: 5 <Gold>k__BackingField: 100
<EatingTime>k__BackingField: 6 <Exp>k__BackingField: 100
<OpenUpgrade>k__BackingField: Upgrade6 <RequiredExp>k__BackingField: 2100
- <Idx>k__BackingField: 31 <WaitTime>k__BackingField: 11
<CustomerRespawn>k__BackingField: 5 <HurryTime>k__BackingField: 10
<Gold>k__BackingField: 100 <EatingTime>k__BackingField: 8
<Exp>k__BackingField: 100 <OpenUpgrade>k__BackingField: Upgrade4
<RequiredExp>k__BackingField: 3200 - <Key>k__BackingField: 21
<WaitTime>k__BackingField: 10 <Value>k__BackingField:
<HurryTime>k__BackingField: 5 <Idx>k__BackingField: 21
<EatingTime>k__BackingField: 6 <CustomerRespawn>k__BackingField: 7
<OpenUpgrade>k__BackingField: <Gold>k__BackingField: 100
- <Idx>k__BackingField: 32 <Exp>k__BackingField: 100
<CustomerRespawn>k__BackingField: 5 <RequiredExp>k__BackingField: 2200
<Gold>k__BackingField: 100 <WaitTime>k__BackingField: 10
<Exp>k__BackingField: 100 <HurryTime>k__BackingField: 10
<RequiredExp>k__BackingField: 3300 <EatingTime>k__BackingField: 6
<WaitTime>k__BackingField: 10 <OpenUpgrade>k__BackingField:
<HurryTime>k__BackingField: 5 - <Key>k__BackingField: 22
<EatingTime>k__BackingField: 6 <Value>k__BackingField:
<OpenUpgrade>k__BackingField: <Idx>k__BackingField: 22
- <Idx>k__BackingField: 33 <CustomerRespawn>k__BackingField: 7
<CustomerRespawn>k__BackingField: 5 <Gold>k__BackingField: 100
<Gold>k__BackingField: 100 <Exp>k__BackingField: 100
<Exp>k__BackingField: 100 <RequiredExp>k__BackingField: 2300
<RequiredExp>k__BackingField: 3400 <WaitTime>k__BackingField: 10
<WaitTime>k__BackingField: 10 <HurryTime>k__BackingField: 9
<HurryTime>k__BackingField: 5 <EatingTime>k__BackingField: 6
<EatingTime>k__BackingField: 6 <OpenUpgrade>k__BackingField:
<OpenUpgrade>k__BackingField: - <Key>k__BackingField: 23
- <Idx>k__BackingField: 34 <Value>k__BackingField:
<CustomerRespawn>k__BackingField: 5 <Idx>k__BackingField: 23
<Gold>k__BackingField: 100 <CustomerRespawn>k__BackingField: 7
<Exp>k__BackingField: 100 <Gold>k__BackingField: 100
<RequiredExp>k__BackingField: 3500 <Exp>k__BackingField: 100
<WaitTime>k__BackingField: 10 <RequiredExp>k__BackingField: 2400
<HurryTime>k__BackingField: 5 <WaitTime>k__BackingField: 10
<EatingTime>k__BackingField: 6 <HurryTime>k__BackingField: 8
<OpenUpgrade>k__BackingField: <EatingTime>k__BackingField: 6
- <Idx>k__BackingField: 35 <OpenUpgrade>k__BackingField:
<CustomerRespawn>k__BackingField: 5 - <Key>k__BackingField: 24
<Gold>k__BackingField: 100 <Value>k__BackingField:
<Exp>k__BackingField: 100 <Idx>k__BackingField: 24
<RequiredExp>k__BackingField: 3600 <CustomerRespawn>k__BackingField: 7
<WaitTime>k__BackingField: 10 <Gold>k__BackingField: 100
<HurryTime>k__BackingField: 5 <Exp>k__BackingField: 100
<EatingTime>k__BackingField: 6 <RequiredExp>k__BackingField: 2500
<OpenUpgrade>k__BackingField: <WaitTime>k__BackingField: 10
- <Idx>k__BackingField: 36 <HurryTime>k__BackingField: 7
<CustomerRespawn>k__BackingField: 5 <EatingTime>k__BackingField: 6
<Gold>k__BackingField: 100 <OpenUpgrade>k__BackingField:
<Exp>k__BackingField: 100 - <Key>k__BackingField: 25
<RequiredExp>k__BackingField: 3700 <Value>k__BackingField:
<WaitTime>k__BackingField: 10 <Idx>k__BackingField: 25
<HurryTime>k__BackingField: 5 <CustomerRespawn>k__BackingField: 7
<EatingTime>k__BackingField: 6 <Gold>k__BackingField: 100
<OpenUpgrade>k__BackingField: <Exp>k__BackingField: 100
- <Idx>k__BackingField: 37 <RequiredExp>k__BackingField: 2600
<CustomerRespawn>k__BackingField: 5 <WaitTime>k__BackingField: 10
<Gold>k__BackingField: 100 <HurryTime>k__BackingField: 6
<Exp>k__BackingField: 100 <EatingTime>k__BackingField: 6
<RequiredExp>k__BackingField: 3800 <OpenUpgrade>k__BackingField: Upgrade5
<WaitTime>k__BackingField: 10 - <Key>k__BackingField: 26
<HurryTime>k__BackingField: 5 <Value>k__BackingField:
<EatingTime>k__BackingField: 6 <Idx>k__BackingField: 26
<OpenUpgrade>k__BackingField: <CustomerRespawn>k__BackingField: 5
- <Idx>k__BackingField: 38 <Gold>k__BackingField: 100
<CustomerRespawn>k__BackingField: 5 <Exp>k__BackingField: 100
<Gold>k__BackingField: 100 <RequiredExp>k__BackingField: 2700
<Exp>k__BackingField: 100 <WaitTime>k__BackingField: 10
<RequiredExp>k__BackingField: 3900 <HurryTime>k__BackingField: 5
<WaitTime>k__BackingField: 10 <EatingTime>k__BackingField: 6
<HurryTime>k__BackingField: 5 <OpenUpgrade>k__BackingField:
<EatingTime>k__BackingField: 6 - <Key>k__BackingField: 27
<OpenUpgrade>k__BackingField: <Value>k__BackingField:
- <Idx>k__BackingField: 39 <Idx>k__BackingField: 27
<CustomerRespawn>k__BackingField: 5 <CustomerRespawn>k__BackingField: 5
<Gold>k__BackingField: 100 <Gold>k__BackingField: 100
<Exp>k__BackingField: 100 <Exp>k__BackingField: 100
<RequiredExp>k__BackingField: 4000 <RequiredExp>k__BackingField: 2800
<WaitTime>k__BackingField: 10 <WaitTime>k__BackingField: 10
<HurryTime>k__BackingField: 5 <HurryTime>k__BackingField: 5
<EatingTime>k__BackingField: 6 <EatingTime>k__BackingField: 6
<OpenUpgrade>k__BackingField: <OpenUpgrade>k__BackingField:
- <Idx>k__BackingField: 4 - <Key>k__BackingField: 28
<CustomerRespawn>k__BackingField: 15 <Value>k__BackingField:
<Gold>k__BackingField: 100 <Idx>k__BackingField: 28
<Exp>k__BackingField: 100 <CustomerRespawn>k__BackingField: 5
<RequiredExp>k__BackingField: 500 <Gold>k__BackingField: 100
<WaitTime>k__BackingField: 20 <Exp>k__BackingField: 100
<HurryTime>k__BackingField: 17 <RequiredExp>k__BackingField: 2900
<EatingTime>k__BackingField: 10 <WaitTime>k__BackingField: 10
<OpenUpgrade>k__BackingField: <HurryTime>k__BackingField: 5
- <Idx>k__BackingField: 40 <EatingTime>k__BackingField: 6
<CustomerRespawn>k__BackingField: 5 <OpenUpgrade>k__BackingField:
<Gold>k__BackingField: 100 - <Key>k__BackingField: 29
<Exp>k__BackingField: 100 <Value>k__BackingField:
<RequiredExp>k__BackingField: 4100 <Idx>k__BackingField: 29
<WaitTime>k__BackingField: 10 <CustomerRespawn>k__BackingField: 5
<HurryTime>k__BackingField: 5 <Gold>k__BackingField: 100
<EatingTime>k__BackingField: 6 <Exp>k__BackingField: 100
<OpenUpgrade>k__BackingField: <RequiredExp>k__BackingField: 3000
- <Idx>k__BackingField: 5 <WaitTime>k__BackingField: 10
<CustomerRespawn>k__BackingField: 15 <HurryTime>k__BackingField: 5
<Gold>k__BackingField: 100 <EatingTime>k__BackingField: 6
<Exp>k__BackingField: 100 <OpenUpgrade>k__BackingField:
<RequiredExp>k__BackingField: 600 - <Key>k__BackingField: 30
<WaitTime>k__BackingField: 20 <Value>k__BackingField:
<HurryTime>k__BackingField: 16 <Idx>k__BackingField: 30
<EatingTime>k__BackingField: 10 <CustomerRespawn>k__BackingField: 5
<OpenUpgrade>k__BackingField: Upgrade1 <Gold>k__BackingField: 100
- <Idx>k__BackingField: 6 <Exp>k__BackingField: 100
<CustomerRespawn>k__BackingField: 13 <RequiredExp>k__BackingField: 3100
<Gold>k__BackingField: 100 <WaitTime>k__BackingField: 10
<Exp>k__BackingField: 100 <HurryTime>k__BackingField: 5
<RequiredExp>k__BackingField: 700 <EatingTime>k__BackingField: 6
<WaitTime>k__BackingField: 20 <OpenUpgrade>k__BackingField: Upgrade6
<HurryTime>k__BackingField: 15 - <Key>k__BackingField: 31
<EatingTime>k__BackingField: 10 <Value>k__BackingField:
<OpenUpgrade>k__BackingField: <Idx>k__BackingField: 31
- <Idx>k__BackingField: 7 <CustomerRespawn>k__BackingField: 5
<CustomerRespawn>k__BackingField: 13 <Gold>k__BackingField: 100
<Gold>k__BackingField: 100 <Exp>k__BackingField: 100
<Exp>k__BackingField: 100 <RequiredExp>k__BackingField: 3200
<RequiredExp>k__BackingField: 800 <WaitTime>k__BackingField: 10
<WaitTime>k__BackingField: 19 <HurryTime>k__BackingField: 5
<HurryTime>k__BackingField: 15 <EatingTime>k__BackingField: 6
<EatingTime>k__BackingField: 10 <OpenUpgrade>k__BackingField:
<OpenUpgrade>k__BackingField: - <Key>k__BackingField: 32
- <Idx>k__BackingField: 8 <Value>k__BackingField:
<CustomerRespawn>k__BackingField: 13 <Idx>k__BackingField: 32
<Gold>k__BackingField: 100 <CustomerRespawn>k__BackingField: 5
<Exp>k__BackingField: 100 <Gold>k__BackingField: 100
<RequiredExp>k__BackingField: 900 <Exp>k__BackingField: 100
<WaitTime>k__BackingField: 18 <RequiredExp>k__BackingField: 3300
<HurryTime>k__BackingField: 15 <WaitTime>k__BackingField: 10
<EatingTime>k__BackingField: 10 <HurryTime>k__BackingField: 5
<OpenUpgrade>k__BackingField: <EatingTime>k__BackingField: 6
- <Idx>k__BackingField: 9 <OpenUpgrade>k__BackingField:
<CustomerRespawn>k__BackingField: 13 - <Key>k__BackingField: 33
<Gold>k__BackingField: 100 <Value>k__BackingField:
<Exp>k__BackingField: 100 <Idx>k__BackingField: 33
<RequiredExp>k__BackingField: 1000 <CustomerRespawn>k__BackingField: 5
<WaitTime>k__BackingField: 17 <Gold>k__BackingField: 100
<HurryTime>k__BackingField: 15 <Exp>k__BackingField: 100
<EatingTime>k__BackingField: 10 <RequiredExp>k__BackingField: 3400
<OpenUpgrade>k__BackingField: <WaitTime>k__BackingField: 10
<HurryTime>k__BackingField: 5
<EatingTime>k__BackingField: 6
<OpenUpgrade>k__BackingField:
- <Key>k__BackingField: 34
<Value>k__BackingField:
<Idx>k__BackingField: 34
<CustomerRespawn>k__BackingField: 5
<Gold>k__BackingField: 100
<Exp>k__BackingField: 100
<RequiredExp>k__BackingField: 3500
<WaitTime>k__BackingField: 10
<HurryTime>k__BackingField: 5
<EatingTime>k__BackingField: 6
<OpenUpgrade>k__BackingField:
- <Key>k__BackingField: 35
<Value>k__BackingField:
<Idx>k__BackingField: 35
<CustomerRespawn>k__BackingField: 5
<Gold>k__BackingField: 100
<Exp>k__BackingField: 100
<RequiredExp>k__BackingField: 3600
<WaitTime>k__BackingField: 10
<HurryTime>k__BackingField: 5
<EatingTime>k__BackingField: 6
<OpenUpgrade>k__BackingField:
- <Key>k__BackingField: 36
<Value>k__BackingField:
<Idx>k__BackingField: 36
<CustomerRespawn>k__BackingField: 5
<Gold>k__BackingField: 100
<Exp>k__BackingField: 100
<RequiredExp>k__BackingField: 3700
<WaitTime>k__BackingField: 10
<HurryTime>k__BackingField: 5
<EatingTime>k__BackingField: 6
<OpenUpgrade>k__BackingField:
- <Key>k__BackingField: 37
<Value>k__BackingField:
<Idx>k__BackingField: 37
<CustomerRespawn>k__BackingField: 5
<Gold>k__BackingField: 100
<Exp>k__BackingField: 100
<RequiredExp>k__BackingField: 3800
<WaitTime>k__BackingField: 10
<HurryTime>k__BackingField: 5
<EatingTime>k__BackingField: 6
<OpenUpgrade>k__BackingField:
- <Key>k__BackingField: 38
<Value>k__BackingField:
<Idx>k__BackingField: 38
<CustomerRespawn>k__BackingField: 5
<Gold>k__BackingField: 100
<Exp>k__BackingField: 100
<RequiredExp>k__BackingField: 3900
<WaitTime>k__BackingField: 10
<HurryTime>k__BackingField: 5
<EatingTime>k__BackingField: 6
<OpenUpgrade>k__BackingField:
- <Key>k__BackingField: 39
<Value>k__BackingField:
<Idx>k__BackingField: 39
<CustomerRespawn>k__BackingField: 5
<Gold>k__BackingField: 100
<Exp>k__BackingField: 100
<RequiredExp>k__BackingField: 4000
<WaitTime>k__BackingField: 10
<HurryTime>k__BackingField: 5
<EatingTime>k__BackingField: 6
<OpenUpgrade>k__BackingField:
- <Key>k__BackingField: 40
<Value>k__BackingField:
<Idx>k__BackingField: 40
<CustomerRespawn>k__BackingField: 5
<Gold>k__BackingField: 100
<Exp>k__BackingField: 100
<RequiredExp>k__BackingField: 4100
<WaitTime>k__BackingField: 10
<HurryTime>k__BackingField: 5
<EatingTime>k__BackingField: 6
<OpenUpgrade>k__BackingField:

View File

@ -12,88 +12,102 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7da6888bb8af7de45985429156f60ee0, type: 3} m_Script: {fileID: 11500000, guid: 7da6888bb8af7de45985429156f60ee0, type: 3}
m_Name: CustomerDataTable m_Name: CustomerDataTable
m_EditorClassIdentifier: m_EditorClassIdentifier:
<CustomerDatas>k__BackingField: _serializedDataList:
- <Idx>k__BackingField: 10001 - <Key>k__BackingField: 10001
<Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uD3C9\uBC94\uD558\uACE0 <Value>k__BackingField:
\uAE09\uD55C Ai1" <Idx>k__BackingField: 10001
<MoveSpeed>k__BackingField: 3 <Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uD3C9\uBC94\uD558\uACE0
<EatingTime>k__BackingField: 5 \uAE09\uD55C Ai1"
<WaitTime>k__BackingField: 5 <MoveSpeed>k__BackingField: 3
<HurryTime>k__BackingField: 5 <EatingTime>k__BackingField: 5
<BaseHappyPoint>k__BackingField: 3 <WaitTime>k__BackingField: 5
<PreferredFood1>k__BackingField: 2 <HurryTime>k__BackingField: 5
<PreferredFood2>k__BackingField: 1 <BaseHappyPoint>k__BackingField: 3
<PreferredFood3>k__BackingField: 0 <PreferredFood1>k__BackingField: 2
<OrderBeverageRate>k__BackingField: 50 <PreferredFood2>k__BackingField: 1
- <Idx>k__BackingField: 10002 <PreferredFood3>k__BackingField: 0
<Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uD3C9\uBC94\uD558\uACE0 <OrderBeverageRate>k__BackingField: 50
\uAE09\uD55C Ai2" - <Key>k__BackingField: 10002
<MoveSpeed>k__BackingField: 3 <Value>k__BackingField:
<EatingTime>k__BackingField: 5 <Idx>k__BackingField: 10002
<WaitTime>k__BackingField: 5 <Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uD3C9\uBC94\uD558\uACE0
<HurryTime>k__BackingField: 5 \uAE09\uD55C Ai2"
<BaseHappyPoint>k__BackingField: 3 <MoveSpeed>k__BackingField: 3
<PreferredFood1>k__BackingField: 1 <EatingTime>k__BackingField: 5
<PreferredFood2>k__BackingField: 2 <WaitTime>k__BackingField: 5
<PreferredFood3>k__BackingField: 0 <HurryTime>k__BackingField: 5
<OrderBeverageRate>k__BackingField: 50 <BaseHappyPoint>k__BackingField: 3
- <Idx>k__BackingField: 10003 <PreferredFood1>k__BackingField: 1
<Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uB290\uB9AC\uACE0 \uB290\uAE0B\uD55C <PreferredFood2>k__BackingField: 2
Ai1" <PreferredFood3>k__BackingField: 0
<MoveSpeed>k__BackingField: 1 <OrderBeverageRate>k__BackingField: 50
<EatingTime>k__BackingField: 15 - <Key>k__BackingField: 10003
<WaitTime>k__BackingField: 15 <Value>k__BackingField:
<HurryTime>k__BackingField: 15 <Idx>k__BackingField: 10003
<BaseHappyPoint>k__BackingField: 3 <Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uB290\uB9AC\uACE0 \uB290\uAE0B\uD55C
<PreferredFood1>k__BackingField: 1 Ai1"
<PreferredFood2>k__BackingField: 2 <MoveSpeed>k__BackingField: 1
<PreferredFood3>k__BackingField: 0 <EatingTime>k__BackingField: 15
<OrderBeverageRate>k__BackingField: 50 <WaitTime>k__BackingField: 15
- <Idx>k__BackingField: 10004 <HurryTime>k__BackingField: 15
<Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uBE60\uB974\uACE0 \uD3C9\uBC94\uD55C <BaseHappyPoint>k__BackingField: 3
Ai1" <PreferredFood1>k__BackingField: 1
<MoveSpeed>k__BackingField: 4 <PreferredFood2>k__BackingField: 2
<EatingTime>k__BackingField: 10 <PreferredFood3>k__BackingField: 0
<WaitTime>k__BackingField: 10 <OrderBeverageRate>k__BackingField: 50
<HurryTime>k__BackingField: 10 - <Key>k__BackingField: 10004
<BaseHappyPoint>k__BackingField: 3 <Value>k__BackingField:
<PreferredFood1>k__BackingField: 1 <Idx>k__BackingField: 10004
<PreferredFood2>k__BackingField: 2 <Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uBE60\uB974\uACE0 \uD3C9\uBC94\uD55C
<PreferredFood3>k__BackingField: 0 Ai1"
<OrderBeverageRate>k__BackingField: 50 <MoveSpeed>k__BackingField: 4
- <Idx>k__BackingField: 10005 <EatingTime>k__BackingField: 10
<Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uBE60\uB974\uACE0 \uD3C9\uBC94\uD55C <WaitTime>k__BackingField: 10
Ai2" <HurryTime>k__BackingField: 10
<MoveSpeed>k__BackingField: 4 <BaseHappyPoint>k__BackingField: 3
<EatingTime>k__BackingField: 10 <PreferredFood1>k__BackingField: 1
<WaitTime>k__BackingField: 10 <PreferredFood2>k__BackingField: 2
<HurryTime>k__BackingField: 10 <PreferredFood3>k__BackingField: 0
<BaseHappyPoint>k__BackingField: 3 <OrderBeverageRate>k__BackingField: 50
<PreferredFood1>k__BackingField: 2 - <Key>k__BackingField: 10005
<PreferredFood2>k__BackingField: 1 <Value>k__BackingField:
<PreferredFood3>k__BackingField: 0 <Idx>k__BackingField: 10005
<OrderBeverageRate>k__BackingField: 50 <Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uBE60\uB974\uACE0 \uD3C9\uBC94\uD55C
- <Idx>k__BackingField: 10006 Ai2"
<Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uBE60\uB974\uACE0 \uB290\uAE0B\uD55C <MoveSpeed>k__BackingField: 4
Ai1" <EatingTime>k__BackingField: 10
<MoveSpeed>k__BackingField: 4 <WaitTime>k__BackingField: 10
<EatingTime>k__BackingField: 10 <HurryTime>k__BackingField: 10
<WaitTime>k__BackingField: 15 <BaseHappyPoint>k__BackingField: 3
<HurryTime>k__BackingField: 15 <PreferredFood1>k__BackingField: 2
<BaseHappyPoint>k__BackingField: 3 <PreferredFood2>k__BackingField: 1
<PreferredFood1>k__BackingField: 1 <PreferredFood3>k__BackingField: 0
<PreferredFood2>k__BackingField: 2 <OrderBeverageRate>k__BackingField: 50
<PreferredFood3>k__BackingField: 0 - <Key>k__BackingField: 10006
<OrderBeverageRate>k__BackingField: 50 <Value>k__BackingField:
- <Idx>k__BackingField: 10007 <Idx>k__BackingField: 10006
<Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uBE60\uB974\uACE0 \uB290\uAE0B\uD55C <Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uBE60\uB974\uACE0 \uB290\uAE0B\uD55C
Ai2" Ai1"
<MoveSpeed>k__BackingField: 4 <MoveSpeed>k__BackingField: 4
<EatingTime>k__BackingField: 10 <EatingTime>k__BackingField: 10
<WaitTime>k__BackingField: 15 <WaitTime>k__BackingField: 15
<HurryTime>k__BackingField: 15 <HurryTime>k__BackingField: 15
<BaseHappyPoint>k__BackingField: 3 <BaseHappyPoint>k__BackingField: 3
<PreferredFood1>k__BackingField: 2 <PreferredFood1>k__BackingField: 1
<PreferredFood2>k__BackingField: 1 <PreferredFood2>k__BackingField: 2
<PreferredFood3>k__BackingField: 0 <PreferredFood3>k__BackingField: 0
<OrderBeverageRate>k__BackingField: 50 <OrderBeverageRate>k__BackingField: 50
- <Key>k__BackingField: 10007
<Value>k__BackingField:
<Idx>k__BackingField: 10007
<Name>k__BackingField: "\uC774\uB3D9\uC18D\uB3C4\uAC00 \uBE60\uB974\uACE0 \uB290\uAE0B\uD55C
Ai2"
<MoveSpeed>k__BackingField: 4
<EatingTime>k__BackingField: 10
<WaitTime>k__BackingField: 15
<HurryTime>k__BackingField: 15
<BaseHappyPoint>k__BackingField: 3
<PreferredFood1>k__BackingField: 2
<PreferredFood2>k__BackingField: 1
<PreferredFood3>k__BackingField: 0
<OrderBeverageRate>k__BackingField: 50

View File

@ -0,0 +1,15 @@
using System;
using UnityEngine;
namespace BlueWater
{
[Serializable]
public class SerializableKeyValuePair<T>
{
[field: SerializeField]
public string Key { get; set; }
[field: SerializeField]
public T Value { get; set; }
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: f1adfc341b1acb244853b09f1935b1a9

View File

@ -13,9 +13,8 @@ namespace BlueWater.Tycoons
public class CustomerManager : Singleton<CustomerManager> public class CustomerManager : Singleton<CustomerManager>
{ {
[Title("손님 데이터")] [Title("손님 데이터")]
[SerializeField, Required] [field: SerializeField, Required]
private CustomerDataSo _customerDataSo; public CustomerDataSo CustomerDataSo { get; private set; }
private Dictionary<string, CustomerData> _customerDatas;
[SerializeField, Required] [SerializeField, Required]
private Customer _customerPrefab; private Customer _customerPrefab;
@ -38,15 +37,6 @@ namespace BlueWater.Tycoons
public Action<Customer> OnInstantiateCustomer; public Action<Customer> OnInstantiateCustomer;
protected override void OnAwake()
{
_customerDatas = new Dictionary<string, CustomerData>(_customerDataSo.Datas.Count);
foreach (var element in _customerDataSo.Datas)
{
_customerDatas.TryAdd(element.Idx, element);
}
}
private void Start() private void Start()
{ {
_customerTableController = TycoonManager.Instance.CustomerTableController; _customerTableController = TycoonManager.Instance.CustomerTableController;
@ -118,15 +108,14 @@ namespace BlueWater.Tycoons
public CustomerData GetRandomCustomerData() public CustomerData GetRandomCustomerData()
{ {
var customerDataCount = _customerDatas.Count; var customerDataCount = CustomerDataSo.GetDataCount();
if (customerDataCount == 0) if (customerDataCount == 0)
{ {
Debug.LogError($"{_customerDatas}의 값이 비어있습니다."); Debug.LogError($"{CustomerDataSo}의 값이 비어있습니다.");
return null; return null;
} }
var randomIndex = Random.Range(0, customerDataCount); return CustomerDataSo.GetRandomValue();
return _customerDatas.ElementAt(randomIndex).Value;
} }
public List<Customer> GetCurrentCustomers() => InstanceCustomers; public List<Customer> GetCurrentCustomers() => InstanceCustomers;

View File

@ -23,7 +23,7 @@ namespace BlueWater.Tycoons
{ {
if (FoodRecipes.Contains(idx)) return; if (FoodRecipes.Contains(idx)) return;
var foodData = ItemManager.Instance.GetFoodDataByIdx(idx); var foodData = ItemManager.Instance.FoodDataSo.GetDataByIdx(idx);
if (foodData == null) return; if (foodData == null) return;
FoodRecipes.Add(idx); FoodRecipes.Add(idx);
@ -34,7 +34,7 @@ namespace BlueWater.Tycoons
{ {
if (DrinkRecipes.Contains(idx)) return; if (DrinkRecipes.Contains(idx)) return;
var drinkData = ItemManager.Instance.GetLiquidDataByIdx(idx); var drinkData = ItemManager.Instance.LiquidDataSo.GetDataByIdx(idx);
if (drinkData == null) return; if (drinkData == null) return;
DrinkRecipes.Add(idx); DrinkRecipes.Add(idx);

View File

@ -50,13 +50,11 @@ namespace BlueWater.Tycoons
[SerializeField] [SerializeField]
private string _dailyBgm; private string _dailyBgm;
[SerializeField, Required] [field: SerializeField, Required]
private LevelDataSo _levelDataSo; public LevelDataSo LevelDataSo { get; private set; }
private Dictionary<string, LevelData> _levelDatas;
[SerializeField, Required] [field: SerializeField, Required]
private CardDataSo _cardDataSo; public CardDataSo CardDataSo { get; private set; }
private Dictionary<string, CardData> _cardDatas;
public Action OnTycoonOpenedEvent; public Action OnTycoonOpenedEvent;
public Action OnTycoonClosedEvent; public Action OnTycoonClosedEvent;
@ -66,8 +64,6 @@ namespace BlueWater.Tycoons
protected override void OnAwake() protected override void OnAwake()
{ {
InitializeComponents(); InitializeComponents();
_levelDatas = InitializeDictionary(_levelDataSo.Datas, data => data.Idx);
_cardDatas = InitializeDictionary(_cardDataSo.Datas, data => data.Idx);
} }
private void Start() private void Start()
@ -104,9 +100,5 @@ namespace BlueWater.Tycoons
{ {
return dataDictionary.Count; return dataDictionary.Count;
} }
public LevelData GetLevelDataByIdx(string idx) => GetDataByIdx(_levelDatas, idx);
public CardData GetCardDataByIdx(string idx) => GetDataByIdx(_cardDatas, idx);
} }
} }

View File

@ -229,12 +229,12 @@ namespace BlueWater.Uis
break; break;
case CombatInventorySortingType.Name: case CombatInventorySortingType.Name:
_itemSlotUiList.Sort((x, y) => _itemSlotUiList.Sort((x, y) =>
string.Compare(ItemManager.Instance.GetItemDataByIdx(x.ItemSlot.Idx).Name, string.Compare(ItemManager.Instance.ItemDataSo.GetDataByIdx(x.ItemSlot.Idx).Name,
ItemManager.Instance.GetItemDataByIdx(y.ItemSlot.Idx).Name, StringComparison.Ordinal)); ItemManager.Instance.ItemDataSo.GetDataByIdx(y.ItemSlot.Idx).Name, StringComparison.Ordinal));
break; break;
case CombatInventorySortingType.Category: case CombatInventorySortingType.Category:
_itemSlotUiList.Sort((x, y) => _itemSlotUiList.Sort((x, y) =>
ItemManager.Instance.GetItemDataByIdx(x.ItemSlot.Idx).Type.CompareTo(ItemManager.Instance.GetItemDataByIdx(y.ItemSlot.Idx).Type)); ItemManager.Instance.ItemDataSo.GetDataByIdx(x.ItemSlot.Idx).Type.CompareTo(ItemManager.Instance.ItemDataSo.GetDataByIdx(y.ItemSlot.Idx).Type));
break; break;
case CombatInventorySortingType.Count: case CombatInventorySortingType.Count:
_itemSlotUiList.Sort((x, y) => y.ItemSlot.Quantity.CompareTo(x.ItemSlot.Quantity)); _itemSlotUiList.Sort((x, y) => y.ItemSlot.Quantity.CompareTo(x.ItemSlot.Quantity));

View File

@ -50,7 +50,7 @@ namespace BlueWater.Uis
_removeType = RemoveType.Single; _removeType = RemoveType.Single;
_selectedList.Clear(); _selectedList.Clear();
_selectedList.Add(selectedSlot); _selectedList.Add(selectedSlot);
_contentText.text = ItemManager.Instance.GetItemDataByIdx(selectedSlot.ItemSlot.Idx).Name + "을(를) 버리시겠습니까?"; _contentText.text = ItemManager.Instance.ItemDataSo.GetDataByIdx(selectedSlot.ItemSlot.Idx).Name + "을(를) 버리시겠습니까?";
_currentCount = 1; _currentCount = 1;
_countText.text = _currentCount.ToString(); _countText.text = _currentCount.ToString();

View File

@ -47,7 +47,7 @@ namespace BlueWater.Uis
public void UpdateData(ItemSlot itemSlot) public void UpdateData(ItemSlot itemSlot)
{ {
var item = ItemManager.Instance.GetItemDataByIdx(itemSlot.Idx); var item = ItemManager.Instance.ItemDataSo.GetDataByIdx(itemSlot.Idx);
_image.sprite = item.Sprite; _image.sprite = item.Sprite;
_nameText.text = item.Name; _nameText.text = item.Name;
_weightText.text = item.Weight * ItemSlot.Quantity + "kg"; _weightText.text = item.Weight * ItemSlot.Quantity + "kg";

View File

@ -100,7 +100,7 @@ namespace BlueWater.Uis
public void OrderItem(string itemIdx, int waitTime, int hurryTime) public void OrderItem(string itemIdx, int waitTime, int hurryTime)
{ {
_orderItemData = ItemManager.Instance.GetItemDataByIdx(itemIdx); _orderItemData = ItemManager.Instance.ItemDataSo.GetDataByIdx(itemIdx);
_isOrdered = true; _isOrdered = true;
_isWaitTimeOver = false; _isWaitTimeOver = false;
_isItemReceived = false; _isItemReceived = false;

View File

@ -35,7 +35,7 @@ namespace BlueWater.Uis
{ {
_ingredientIdx = ingredientIdx; _ingredientIdx = ingredientIdx;
_needQuantity = quantity; _needQuantity = quantity;
var ingredientItemData = ItemManager.Instance.GetItemDataByIdx(_ingredientIdx); var ingredientItemData = ItemManager.Instance.ItemDataSo.GetDataByIdx(_ingredientIdx);
_image.sprite = ingredientItemData.Sprite; _image.sprite = ingredientItemData.Sprite;
_inventoryQuantity = DataManager.Instance.Inventory.GetItemByIdx(_ingredientIdx).Quantity; _inventoryQuantity = DataManager.Instance.Inventory.GetItemByIdx(_ingredientIdx).Quantity;
SetQuantity(); SetQuantity();

View File

@ -115,7 +115,7 @@ namespace BlueWater.Uis
foreach (var element in _dataManager.TycoonData.FoodRecipes) foreach (var element in _dataManager.TycoonData.FoodRecipes)
{ {
var newItemSlot = Instantiate(_finishedFoodSlotUi, _finishedFoodSlotLocation).GetComponent<TycoonItemSlotUi>(); var newItemSlot = Instantiate(_finishedFoodSlotUi, _finishedFoodSlotLocation).GetComponent<TycoonItemSlotUi>();
var foodData = _itemManager.GetFoodDataByIdx(element); var foodData = _itemManager.FoodDataSo.GetDataByIdx(element);
newItemSlot.SetFoodData(foodData); newItemSlot.SetFoodData(foodData);
_finishedFoodSlotUis.Add(newItemSlot); _finishedFoodSlotUis.Add(newItemSlot);
newItemSlot.AddButtonClickListener(() => SelectFinishedFood(foodData)); newItemSlot.AddButtonClickListener(() => SelectFinishedFood(foodData));
@ -124,7 +124,7 @@ namespace BlueWater.Uis
private void AddFoodRecipe(string idx) private void AddFoodRecipe(string idx)
{ {
var foodData = _itemManager.GetFoodDataByIdx(idx); var foodData = _itemManager.FoodDataSo.GetDataByIdx(idx);
var newItemSlot = Instantiate(_finishedFoodSlotUi, _finishedFoodSlotLocation).GetComponent<TycoonItemSlotUi>(); var newItemSlot = Instantiate(_finishedFoodSlotUi, _finishedFoodSlotLocation).GetComponent<TycoonItemSlotUi>();
newItemSlot.SetFoodData(foodData); newItemSlot.SetFoodData(foodData);
_finishedFoodSlotUis.Add(newItemSlot); _finishedFoodSlotUis.Add(newItemSlot);
@ -156,7 +156,7 @@ namespace BlueWater.Uis
else else
{ {
_selectedFoodData = foodData; _selectedFoodData = foodData;
_selectedFoodImage.sprite = _itemManager.GetItemDataByIdx(_selectedFoodData.Idx).Sprite; _selectedFoodImage.sprite = _itemManager.ItemDataSo.GetDataByIdx(_selectedFoodData.Idx).Sprite;
_selectedFoodName.text = _selectedFoodData.Name; _selectedFoodName.text = _selectedFoodData.Name;
_selectedFoodTasteText.text = _selectedFoodData.TasteToString(); _selectedFoodTasteText.text = _selectedFoodData.TasteToString();
_selectedFoodImage.enabled = true; _selectedFoodImage.enabled = true;
@ -252,13 +252,13 @@ namespace BlueWater.Uis
return; return;
case FoodSortingType.PriceUp: case FoodSortingType.PriceUp:
_finishedFoodSlotUis.Sort((x, y) => _finishedFoodSlotUis.Sort((x, y) =>
_itemManager.GetItemDataByIdx(x.FoodData.Idx).Price. _itemManager.ItemDataSo.GetDataByIdx(x.FoodData.Idx).Price.
CompareTo(_itemManager.GetItemDataByIdx(y.FoodData.Idx).Price)); CompareTo(_itemManager.ItemDataSo.GetDataByIdx(y.FoodData.Idx).Price));
break; break;
case FoodSortingType.PriceDown: case FoodSortingType.PriceDown:
_finishedFoodSlotUis.Sort((x, y) => _finishedFoodSlotUis.Sort((x, y) =>
_itemManager.GetItemDataByIdx(y.FoodData.Idx).Price. _itemManager.ItemDataSo.GetDataByIdx(y.FoodData.Idx).Price.
CompareTo(_itemManager.GetItemDataByIdx(x.FoodData.Idx).Price)); CompareTo(_itemManager.ItemDataSo.GetDataByIdx(x.FoodData.Idx).Price));
break; break;
case FoodSortingType.CookwareTypeUp: case FoodSortingType.CookwareTypeUp:
_finishedFoodSlotUis.Sort((x, y) => _finishedFoodSlotUis.Sort((x, y) =>

View File

@ -27,7 +27,7 @@ namespace BlueWater.Uis
} }
else else
{ {
SetItemImage(ItemManager.GetItemDataByIdx(ItemSlot.Idx).Sprite); SetItemImage(ItemManager.ItemDataSo.GetDataByIdx(ItemSlot.Idx).Sprite);
var myIngredientQuantity = DataManager.Instance.Inventory.GetItemByIdx(itemSlot.Idx)?.Quantity ?? 0; var myIngredientQuantity = DataManager.Instance.Inventory.GetItemByIdx(itemSlot.Idx)?.Quantity ?? 0;
var needQuantity = ItemSlot.Quantity; var needQuantity = ItemSlot.Quantity;
QuantityText.text = $"{myIngredientQuantity}/{needQuantity}"; QuantityText.text = $"{myIngredientQuantity}/{needQuantity}";

View File

@ -134,7 +134,7 @@ namespace BlueWater.Uis
case InventoryFilterSortingType.Ingredient: case InventoryFilterSortingType.Ingredient:
foreach (var element in _tycoonItemSlotUis) foreach (var element in _tycoonItemSlotUis)
{ {
if (_itemManager.GetItemDataByIdx(element.ItemSlot.Idx).Type == ItemType.FoodIngredient) if (_itemManager.ItemDataSo.GetDataByIdx(element.ItemSlot.Idx).Type == ItemType.FoodIngredient)
{ {
element.ShowUi(); element.ShowUi();
} }
@ -166,43 +166,43 @@ namespace BlueWater.Uis
break; break;
case InventorySortingType.PriceUp: case InventorySortingType.PriceUp:
_tycoonItemSlotUis.Sort((x, y) => _tycoonItemSlotUis.Sort((x, y) =>
_itemManager.GetItemDataByIdx(x.ItemSlot.Idx).Price. _itemManager.ItemDataSo.GetDataByIdx(x.ItemSlot.Idx).Price.
CompareTo(_itemManager.GetItemDataByIdx(y.ItemSlot.Idx).Price)); CompareTo(_itemManager.ItemDataSo.GetDataByIdx(y.ItemSlot.Idx).Price));
break; break;
case InventorySortingType.PriceDown: case InventorySortingType.PriceDown:
_tycoonItemSlotUis.Sort((x, y) => _tycoonItemSlotUis.Sort((x, y) =>
_itemManager.GetItemDataByIdx(y.ItemSlot.Idx).Price. _itemManager.ItemDataSo.GetDataByIdx(y.ItemSlot.Idx).Price.
CompareTo(_itemManager.GetItemDataByIdx(x.ItemSlot.Idx).Price)); CompareTo(_itemManager.ItemDataSo.GetDataByIdx(x.ItemSlot.Idx).Price));
break; break;
case InventorySortingType.TypeUp: case InventorySortingType.TypeUp:
_tycoonItemSlotUis.Sort((x, y) => _tycoonItemSlotUis.Sort((x, y) =>
_itemManager.GetItemDataByIdx(x.ItemSlot.Idx).Type. _itemManager.ItemDataSo.GetDataByIdx(x.ItemSlot.Idx).Type.
CompareTo(_itemManager.GetItemDataByIdx(y.ItemSlot.Idx).Type)); CompareTo(_itemManager.ItemDataSo.GetDataByIdx(y.ItemSlot.Idx).Type));
break; break;
case InventorySortingType.TypeDown: case InventorySortingType.TypeDown:
_tycoonItemSlotUis.Sort((x, y) => _tycoonItemSlotUis.Sort((x, y) =>
_itemManager.GetItemDataByIdx(y.ItemSlot.Idx).Type. _itemManager.ItemDataSo.GetDataByIdx(y.ItemSlot.Idx).Type.
CompareTo(_itemManager.GetItemDataByIdx(x.ItemSlot.Idx).Type)); CompareTo(_itemManager.ItemDataSo.GetDataByIdx(x.ItemSlot.Idx).Type));
break; break;
case InventorySortingType.IngredientTypeUp: case InventorySortingType.IngredientTypeUp:
_tycoonItemSlotUis.Sort((x, y) => _tycoonItemSlotUis.Sort((x, y) =>
_itemManager.GetItemDataByIdx(x.ItemSlot.Idx).IngredientType. _itemManager.ItemDataSo.GetDataByIdx(x.ItemSlot.Idx).IngredientType.
CompareTo(_itemManager.GetItemDataByIdx(y.ItemSlot.Idx).IngredientType)); CompareTo(_itemManager.ItemDataSo.GetDataByIdx(y.ItemSlot.Idx).IngredientType));
break; break;
case InventorySortingType.IngredientTypeDown: case InventorySortingType.IngredientTypeDown:
_tycoonItemSlotUis.Sort((x, y) => _tycoonItemSlotUis.Sort((x, y) =>
_itemManager.GetItemDataByIdx(y.ItemSlot.Idx).IngredientType. _itemManager.ItemDataSo.GetDataByIdx(y.ItemSlot.Idx).IngredientType.
CompareTo(_itemManager.GetItemDataByIdx(x.ItemSlot.Idx).IngredientType)); CompareTo(_itemManager.ItemDataSo.GetDataByIdx(x.ItemSlot.Idx).IngredientType));
break; break;
case InventorySortingType.NameUp: case InventorySortingType.NameUp:
_tycoonItemSlotUis.Sort((x, y) => _tycoonItemSlotUis.Sort((x, y) =>
string.Compare(_itemManager.GetItemDataByIdx(x.ItemSlot.Idx).Name, string.Compare(_itemManager.ItemDataSo.GetDataByIdx(x.ItemSlot.Idx).Name,
_itemManager.GetItemDataByIdx(y.ItemSlot.Idx).Name, StringComparison.Ordinal)); _itemManager.ItemDataSo.GetDataByIdx(y.ItemSlot.Idx).Name, StringComparison.Ordinal));
break; break;
case InventorySortingType.NameDown: case InventorySortingType.NameDown:
_tycoonItemSlotUis.Sort((x, y) => _tycoonItemSlotUis.Sort((x, y) =>
string.Compare(_itemManager.GetItemDataByIdx(y.ItemSlot.Idx).Name, string.Compare(_itemManager.ItemDataSo.GetDataByIdx(y.ItemSlot.Idx).Name,
_itemManager.GetItemDataByIdx(x.ItemSlot.Idx).Name, StringComparison.Ordinal)); _itemManager.ItemDataSo.GetDataByIdx(x.ItemSlot.Idx).Name, StringComparison.Ordinal));
break; break;
case InventorySortingType.AcquisitionTimeUp: case InventorySortingType.AcquisitionTimeUp:
_tycoonItemSlotUis.Sort((x, y) => _tycoonItemSlotUis.Sort((x, y) =>

View File

@ -25,7 +25,7 @@ namespace BlueWater.Uis
public void Initialize(string idx) public void Initialize(string idx)
{ {
liquidData = ItemManager.Instance.GetLiquidDataByIdx(idx); liquidData = ItemManager.Instance.LiquidDataSo.GetDataByIdx(idx);
_image.sprite = liquidData.Sprite; _image.sprite = liquidData.Sprite;
} }

View File

@ -95,11 +95,27 @@ public class TycoonCard : MonoBehaviour, IPointerEnterHandler, IPointerExitHandl
currentRotationCoroutine = StartCoroutine(RotateOverTime()); currentRotationCoroutine = StartCoroutine(RotateOverTime());
var a = TycoonManager.Instance.GetCardDataByIdx(_cardData); var cardData = TycoonManager.Instance.CardDataSo.GetDataByIdx(_cardData);
// Resources.Load() // Resources.Load()
} }
void Start()
{
_cardData_IDX = TycoonManager.Instance.CardDataSo.GetDataByIdx(_cardData);
Transform nameTransform = transform.Find("Name");
Transform infoTransform = transform.Find("Infomation");
TextMeshProUGUI nametextComponent = nameTransform.GetComponent<TextMeshProUGUI>();
nametextComponent.text = _cardData_IDX.Img;
TextMeshProUGUI infotextComponent = infoTransform.GetComponent<TextMeshProUGUI>();
infotextComponent.text = _cardData_IDX.ScriptText;
}
// 마우스가 이미지 위에 올라갔을 때 호출 // 마우스가 이미지 위에 올라갔을 때 호출
public void OnPointerEnter(PointerEventData eventData) public void OnPointerEnter(PointerEventData eventData)
{ {
@ -215,7 +231,7 @@ public class TycoonCard : MonoBehaviour, IPointerEnterHandler, IPointerExitHandl
rectTransform.localRotation = Quaternion.identity; rectTransform.localRotation = Quaternion.identity;
endRotationCoroutine = null; endRotationCoroutine = null;
} }
private IEnumerator RotateOverTime() private IEnumerator RotateOverTime()
{ {
RectTransform rectTransform = this.GetComponent<RectTransform>(); RectTransform rectTransform = this.GetComponent<RectTransform>();

View File

@ -189,7 +189,7 @@ namespace BlueWater.Uis
} }
else else
{ {
SetItemImage(ItemManager.GetItemDataByIdx(ItemSlot.Idx).Sprite); SetItemImage(ItemManager.ItemDataSo.GetDataByIdx(ItemSlot.Idx).Sprite);
QuantityText.text = ItemSlot.Quantity.ToString(); QuantityText.text = ItemSlot.Quantity.ToString();
} }
} }
@ -219,7 +219,7 @@ namespace BlueWater.Uis
} }
else else
{ {
SetItemImage(ItemManager.GetItemDataByIdx(FoodData.Idx).Sprite); SetItemImage(ItemManager.ItemDataSo.GetDataByIdx(FoodData.Idx).Sprite);
if (IsUsingBackgroundColor) if (IsUsingBackgroundColor)
{ {
UseBackgroundColor(); UseBackgroundColor();

View File

@ -46,11 +46,11 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_persistent: 1 _persistent: 1
_defaultItemPrefab: {fileID: 1370112280380943697, guid: 28a379482be867746aad889c0f1c3c79, type: 3} _defaultItemPrefab: {fileID: 1370112280380943697, guid: 28a379482be867746aad889c0f1c3c79, type: 3}
_itemDataSo: {fileID: 11400000, guid: d7011c71193e95743aa868ca1bea6010, type: 2} <ItemDataSo>k__BackingField: {fileID: 11400000, guid: d7011c71193e95743aa868ca1bea6010, type: 2}
_itemDropTableSo: {fileID: 11400000, guid: 9e1384a77106eb845ad86d6834ba9a52, type: 2} <ItemDropTableSo>k__BackingField: {fileID: 11400000, guid: 9e1384a77106eb845ad86d6834ba9a52, type: 2}
_foodDataSo: {fileID: 11400000, guid: 7b282dfe68d23cd48a8f437ae2cd7dde, type: 2} <FoodDataSo>k__BackingField: {fileID: 11400000, guid: 7b282dfe68d23cd48a8f437ae2cd7dde, type: 2}
_cocktailDataSo: {fileID: 11400000, guid: b28d3497d1f428046bc82469f2056bac, type: 2} <CocktailDataSo>k__BackingField: {fileID: 11400000, guid: b28d3497d1f428046bc82469f2056bac, type: 2}
liquidDataSo: {fileID: 11400000, guid: d912288eee347ea4b98718ff38ef5d78, type: 2} <LiquidDataSo>k__BackingField: {fileID: 11400000, guid: d912288eee347ea4b98718ff38ef5d78, type: 2}
<ItemSlotDataSo>k__BackingField: {fileID: 11400000, guid: 1e74e5d3760c6a74c820233d292733c1, type: 2} <ItemSlotDataSo>k__BackingField: {fileID: 11400000, guid: 1e74e5d3760c6a74c820233d292733c1, type: 2}
_randomDropRadius: 3 _randomDropRadius: 3
_minSeparationDistance: 1.5 _minSeparationDistance: 1.5