Merge branch 'develop' of 121.165.94.242:capers/bluewater into NTG
This commit is contained in:
commit
9da8b228f1
190
BlueWater/Assets/02.Scripts/Editor/DifferencePopup.cs
Normal file
190
BlueWater/Assets/02.Scripts/Editor/DifferencePopup.cs
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using ExcelDataReader;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace _02.Scripts.Editor
|
||||||
|
{
|
||||||
|
public class DifferencePopup : EditorWindow
|
||||||
|
{
|
||||||
|
private List<Difference> differences;
|
||||||
|
private string selectedExcelFile;
|
||||||
|
private string jsonFolderPath;
|
||||||
|
private Vector2 scrollPosition;
|
||||||
|
private string excelFolderPath = "Assets/Resources/Excel";
|
||||||
|
|
||||||
|
public delegate void OnCloseHandler();
|
||||||
|
|
||||||
|
public event OnCloseHandler OnClose;
|
||||||
|
|
||||||
|
public static DifferencePopup ShowWindow(List<Difference> differences, string selectedExcelFile,
|
||||||
|
string jsonFolderPath)
|
||||||
|
{
|
||||||
|
DifferencePopup window = GetWindow<DifferencePopup>("비교창");
|
||||||
|
window.differences = differences;
|
||||||
|
window.selectedExcelFile = selectedExcelFile;
|
||||||
|
window.jsonFolderPath = jsonFolderPath;
|
||||||
|
return window;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGUI()
|
||||||
|
{
|
||||||
|
EditorGUILayout.LabelField("비교대상 : " + selectedExcelFile, EditorStyles.boldLabel);
|
||||||
|
|
||||||
|
scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
|
||||||
|
|
||||||
|
foreach (var difference in differences)
|
||||||
|
{
|
||||||
|
EditorGUILayout.LabelField("속성: " + difference.PropertyName);
|
||||||
|
EditorGUILayout.LabelField("새로운 값: " + difference.NewValue);
|
||||||
|
EditorGUILayout.LabelField("기존의 값: " + difference.ExistingValue);
|
||||||
|
EditorGUILayout.Space();
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorGUILayout.EndScrollView();
|
||||||
|
|
||||||
|
if (GUILayout.Button("저장"))
|
||||||
|
{
|
||||||
|
string excelPath = Path.Combine(excelFolderPath, selectedExcelFile + ".xlsx");
|
||||||
|
string jsonPath = Path.Combine(jsonFolderPath, selectedExcelFile + ".json");
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
JArray newArray = ExcelToJsonConverter.ConvertExcelToJsonArray(excelPath);
|
||||||
|
File.WriteAllText(jsonPath, newArray.ToString());
|
||||||
|
//EditorUtility.DisplayDialog("Success", "Changes saved successfully.", "OK");
|
||||||
|
ExcelToJsonConverter.toggleStates[selectedExcelFile] = false;
|
||||||
|
OnClose?.Invoke();
|
||||||
|
this.Close();
|
||||||
|
|
||||||
|
bool anyToggled = false;
|
||||||
|
foreach (var toggleState in ExcelToJsonConverter.toggleStates.Values)
|
||||||
|
{
|
||||||
|
if (toggleState)
|
||||||
|
{
|
||||||
|
anyToggled = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (anyToggled)
|
||||||
|
{
|
||||||
|
ExcelToJsonConverter.Instance.ProcessSelectedFiles();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"저장에 실패했습니다: {e.Message}");
|
||||||
|
EditorUtility.DisplayDialog("실패", "저장에 실패했습니다. 콘솔을 확인해주세요.",
|
||||||
|
"확인");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (GUILayout.Button("저장하지 않고 닫기"))
|
||||||
|
{
|
||||||
|
ExcelToJsonConverter.toggleStates[selectedExcelFile] = false;
|
||||||
|
OnClose?.Invoke();
|
||||||
|
this.Close();
|
||||||
|
|
||||||
|
bool anyToggled = false;
|
||||||
|
foreach (var toggleState in ExcelToJsonConverter.toggleStates.Values)
|
||||||
|
{
|
||||||
|
if (toggleState)
|
||||||
|
{
|
||||||
|
anyToggled = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (anyToggled)
|
||||||
|
{
|
||||||
|
ExcelToJsonConverter.Instance.ProcessSelectedFiles();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
ExcelToJsonConverter.toggleStates[selectedExcelFile] = false;
|
||||||
|
OnClose?.Invoke();
|
||||||
|
}
|
||||||
|
|
||||||
|
// private JArray ConvertExcelToJsonArray(string excelPath)
|
||||||
|
// {
|
||||||
|
// FileStream stream = File.Open(excelPath, FileMode.Open, FileAccess.Read);
|
||||||
|
// IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
|
||||||
|
//
|
||||||
|
// DataSet result = excelReader.AsDataSet(new ExcelDataSetConfiguration()
|
||||||
|
// {
|
||||||
|
// ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
|
||||||
|
// {
|
||||||
|
// UseHeaderRow = true
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// stream.Close();
|
||||||
|
// DataTable table = result.Tables[0];
|
||||||
|
//
|
||||||
|
// JArray jsonArray = new JArray();
|
||||||
|
// foreach (DataRow row in table.Rows)
|
||||||
|
// {
|
||||||
|
// JObject obj = new JObject();
|
||||||
|
// foreach (DataColumn column in table.Columns)
|
||||||
|
// {
|
||||||
|
// string cellValue = row[column].ToString();
|
||||||
|
// if (float.TryParse(cellValue, out float floatResult))
|
||||||
|
// {
|
||||||
|
// if (floatResult % 1 == 0) // If the value is a whole number
|
||||||
|
// {
|
||||||
|
// obj[column.ColumnName] = Convert.ToInt32(floatResult);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// obj[column.ColumnName] = floatResult;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else if (IsString(cellValue))
|
||||||
|
// {
|
||||||
|
// obj[column.ColumnName] = cellValue;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// obj[column.ColumnName] = cellValue;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// jsonArray.Add(obj);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return jsonArray;
|
||||||
|
// }
|
||||||
|
|
||||||
|
private bool IsString(string value)
|
||||||
|
{
|
||||||
|
return value.Any(c => !char.IsDigit(c));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class Difference
|
||||||
|
{
|
||||||
|
public int Index { get; set; }
|
||||||
|
public string PropertyName { get; set; }
|
||||||
|
public string NewValue { get; set; }
|
||||||
|
public string ExistingValue { get; set; }
|
||||||
|
|
||||||
|
public Difference(string propertyName, string newValue, string existingValue, int index)
|
||||||
|
{
|
||||||
|
PropertyName = propertyName;
|
||||||
|
NewValue = newValue;
|
||||||
|
ExistingValue = existingValue;
|
||||||
|
Index = index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 974c0982732174a6bb82ac66de663c45
|
319
BlueWater/Assets/02.Scripts/Editor/ExcelToJsonConverter.cs
Normal file
319
BlueWater/Assets/02.Scripts/Editor/ExcelToJsonConverter.cs
Normal file
@ -0,0 +1,319 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using ExcelDataReader;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace _02.Scripts.Editor
|
||||||
|
{
|
||||||
|
public class ExcelToJsonConverter : EditorWindow
|
||||||
|
{
|
||||||
|
private readonly string excelFolderPath = "Assets/Resources/Excel";
|
||||||
|
private readonly string jsonFolderPath = "Assets/Resources/JSON";
|
||||||
|
public static Dictionary<string, bool> toggleStates;
|
||||||
|
private List<DifferencePopup.Difference> differences;
|
||||||
|
private bool showPopup = false;
|
||||||
|
private string selectedExcelFile;
|
||||||
|
public static ExcelToJsonConverter Instance { get; private set; }
|
||||||
|
private Vector2 scrollPosition;
|
||||||
|
|
||||||
|
[MenuItem("Tools/EXCEL TO JSON - BlueWater")]
|
||||||
|
public static void ShowWindow()
|
||||||
|
{
|
||||||
|
Instance = GetWindow<ExcelToJsonConverter>("EXCEL TO JSON");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
toggleStates = new Dictionary<string, bool>();
|
||||||
|
var excelFiles = Directory.GetFiles(excelFolderPath, "*.xlsx");
|
||||||
|
foreach (var excelFile in excelFiles)
|
||||||
|
{
|
||||||
|
toggleStates[Path.GetFileNameWithoutExtension(excelFile)] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ProcessSelectedFiles()
|
||||||
|
{
|
||||||
|
List<DifferencePopup.Difference> currentDifferences = new List<DifferencePopup.Difference>();
|
||||||
|
|
||||||
|
bool differencesFound = false;
|
||||||
|
|
||||||
|
foreach (var excelFile in toggleStates.Keys)
|
||||||
|
{
|
||||||
|
if (toggleStates[excelFile])
|
||||||
|
{
|
||||||
|
string excelPath = Path.Combine(excelFolderPath, excelFile + ".xlsx");
|
||||||
|
string jsonPath = Path.Combine(jsonFolderPath, excelFile + ".json");
|
||||||
|
|
||||||
|
JArray newJsonArray = ConvertExcelToJsonArray(excelPath);
|
||||||
|
|
||||||
|
if (File.Exists(jsonPath))
|
||||||
|
{
|
||||||
|
JArray existingJsonArray = JArray.Parse(File.ReadAllText(jsonPath));
|
||||||
|
currentDifferences = CompareJsonObjects(newJsonArray, existingJsonArray);
|
||||||
|
if (currentDifferences.Count > 0)
|
||||||
|
{
|
||||||
|
selectedExcelFile = excelFile;
|
||||||
|
differences = currentDifferences;
|
||||||
|
showPopup = true;
|
||||||
|
differencesFound = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
File.WriteAllText(jsonPath, newJsonArray.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!differencesFound && !showPopup)
|
||||||
|
{
|
||||||
|
EditorUtility.DisplayDialog("달라진점이 없음",
|
||||||
|
"비교 대상인 새로운 엑셀 파일과 기존의 제이슨 파일에서 다른 점을 발견하지 못했습니다.", "확인");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGUI()
|
||||||
|
{
|
||||||
|
EditorGUILayout.LabelField("EXCEL TO JSON - Select & Compare", EditorStyles.boldLabel);
|
||||||
|
|
||||||
|
scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
|
||||||
|
|
||||||
|
List<string> keys = new List<string>(toggleStates.Keys);
|
||||||
|
|
||||||
|
foreach (var excelFile in keys)
|
||||||
|
{
|
||||||
|
bool currentValue = toggleStates[excelFile];
|
||||||
|
bool newValue = EditorGUILayout.ToggleLeft(excelFile, currentValue);
|
||||||
|
if (currentValue != newValue)
|
||||||
|
{
|
||||||
|
toggleStates[excelFile] = newValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorGUILayout.EndScrollView();
|
||||||
|
|
||||||
|
if (GUILayout.Button("수정사항 체크"))
|
||||||
|
{
|
||||||
|
CheckModifiedToggles();
|
||||||
|
}
|
||||||
|
|
||||||
|
GUILayout.Space(10);
|
||||||
|
|
||||||
|
EditorGUILayout.BeginHorizontal();
|
||||||
|
|
||||||
|
if (GUILayout.Button("전체 해제"))
|
||||||
|
{
|
||||||
|
foreach (var excelFile in keys)
|
||||||
|
{
|
||||||
|
toggleStates[excelFile] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button("전체 선택"))
|
||||||
|
{
|
||||||
|
foreach (var excelFile in keys)
|
||||||
|
{
|
||||||
|
toggleStates[excelFile] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorGUILayout.EndHorizontal();
|
||||||
|
|
||||||
|
GUILayout.Space(10);
|
||||||
|
|
||||||
|
if (GUILayout.Button("선택된 파일들 비교 및 병합"))
|
||||||
|
{
|
||||||
|
ProcessSelectedFiles();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (showPopup)
|
||||||
|
{
|
||||||
|
DifferencePopup window = DifferencePopup.ShowWindow(differences, selectedExcelFile, jsonFolderPath);
|
||||||
|
window.OnClose += () => showPopup = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CheckModifiedToggles()
|
||||||
|
{
|
||||||
|
List<string> keysToCheck = new List<string>(toggleStates.Keys);
|
||||||
|
|
||||||
|
foreach (var excelFile in keysToCheck)
|
||||||
|
{
|
||||||
|
string excelPath = Path.Combine(excelFolderPath, excelFile + ".xlsx");
|
||||||
|
string jsonPath = Path.Combine(jsonFolderPath, excelFile + ".json");
|
||||||
|
|
||||||
|
if (File.Exists(jsonPath))
|
||||||
|
{
|
||||||
|
JArray newJsonArray = ConvertExcelToJsonArray(excelPath);
|
||||||
|
JArray existingJsonArray = JArray.Parse(File.ReadAllText(jsonPath));
|
||||||
|
List<DifferencePopup.Difference> currentDifferences =
|
||||||
|
CompareJsonObjects(newJsonArray, existingJsonArray);
|
||||||
|
|
||||||
|
if (currentDifferences.Count > 0)
|
||||||
|
{
|
||||||
|
toggleStates[excelFile] = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
toggleStates[excelFile] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JArray ConvertExcelToJsonArray(string excelPath)
|
||||||
|
{
|
||||||
|
FileStream stream = File.Open(excelPath, FileMode.Open, FileAccess.Read);
|
||||||
|
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
|
||||||
|
|
||||||
|
DataSet result = excelReader.AsDataSet(new ExcelDataSetConfiguration()
|
||||||
|
{
|
||||||
|
ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
|
||||||
|
{
|
||||||
|
UseHeaderRow = true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
stream.Close();
|
||||||
|
DataTable table = result.Tables[0];
|
||||||
|
|
||||||
|
JArray jsonArray = new JArray();
|
||||||
|
foreach (DataRow row in table.Rows)
|
||||||
|
{
|
||||||
|
JObject obj = new JObject();
|
||||||
|
foreach (DataColumn column in table.Columns)
|
||||||
|
{
|
||||||
|
string cellValue = row[column].ToString();
|
||||||
|
if (float.TryParse(cellValue, out float floatResult))
|
||||||
|
{
|
||||||
|
if (floatResult % 1 == 0)
|
||||||
|
{
|
||||||
|
obj[column.ColumnName] = Convert.ToInt32(floatResult);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
obj[column.ColumnName] = floatResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (IsString(cellValue))
|
||||||
|
{
|
||||||
|
obj[column.ColumnName] = cellValue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
obj[column.ColumnName] = cellValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jsonArray.Add(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
return jsonArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsString(string value)
|
||||||
|
{
|
||||||
|
return value.Any(c => !char.IsDigit(c));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private List<DifferencePopup.Difference> CompareJsonObjects(JArray newObj, JArray existingObj)
|
||||||
|
{
|
||||||
|
List<DifferencePopup.Difference> differences = new List<DifferencePopup.Difference>();
|
||||||
|
|
||||||
|
int minLength = Mathf.Min(newObj.Count, existingObj.Count);
|
||||||
|
int maxLength = Mathf.Max(newObj.Count, existingObj.Count);
|
||||||
|
|
||||||
|
for (int i = 0; i < maxLength; i++)
|
||||||
|
{
|
||||||
|
if (i < minLength)
|
||||||
|
{
|
||||||
|
JObject newItem = newObj[i] as JObject;
|
||||||
|
JObject existingItem = existingObj[i] as JObject;
|
||||||
|
|
||||||
|
if (newItem != null && existingItem != null)
|
||||||
|
{
|
||||||
|
HashSet<string> allPropertyNames = new HashSet<string>(newItem.Properties().Select(p => p.Name));
|
||||||
|
allPropertyNames.UnionWith(existingItem.Properties().Select(p => p.Name));
|
||||||
|
|
||||||
|
foreach (string propertyName in allPropertyNames)
|
||||||
|
{
|
||||||
|
JToken newToken;
|
||||||
|
JToken existingToken;
|
||||||
|
|
||||||
|
if (newItem.TryGetValue(propertyName, out newToken) &&
|
||||||
|
existingItem.TryGetValue(propertyName, out existingToken))
|
||||||
|
{
|
||||||
|
string newValueWithoutSpaces = newToken.ToString().Replace(" ", "");
|
||||||
|
string existingValueWithoutSpaces = existingToken.ToString().Replace(" ", "");
|
||||||
|
|
||||||
|
if (!newValueWithoutSpaces.Equals(existingValueWithoutSpaces))
|
||||||
|
{
|
||||||
|
differences.Add(new DifferencePopup.Difference(propertyName, newToken.ToString(),
|
||||||
|
existingToken.ToString(), i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!newItem.TryGetValue(propertyName, out newToken) &&
|
||||||
|
existingItem.TryGetValue(propertyName, out existingToken))
|
||||||
|
{
|
||||||
|
differences.Add(new DifferencePopup.Difference(propertyName, "N/A",
|
||||||
|
existingToken.ToString(), i));
|
||||||
|
}
|
||||||
|
else if (newItem.TryGetValue(propertyName, out newToken) &&
|
||||||
|
!existingItem.TryGetValue(propertyName, out existingToken))
|
||||||
|
{
|
||||||
|
differences.Add(new DifferencePopup.Difference(propertyName, newToken.ToString(), "N/A",
|
||||||
|
i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogError($"해당 인덱스에서 JSON 객체를 비교하지 못했습니다 {i}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 추가된 행에 대한 차이를 처리합니다.
|
||||||
|
JObject newItem = i < newObj.Count ? newObj[i] as JObject : null;
|
||||||
|
JObject existingItem = i < existingObj.Count ? existingObj[i] as JObject : null;
|
||||||
|
JObject availableItem = newItem ?? existingItem;
|
||||||
|
string newValue, existingValue;
|
||||||
|
|
||||||
|
foreach (var property in availableItem.Properties())
|
||||||
|
{
|
||||||
|
if (newItem != null && newItem.TryGetValue(property.Name, out JToken newToken))
|
||||||
|
{
|
||||||
|
newValue = newToken.ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newValue = "N/A";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (existingItem != null && existingItem.TryGetValue(property.Name, out JToken existingToken))
|
||||||
|
{
|
||||||
|
existingValue = existingToken.ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
existingValue = "N/A";
|
||||||
|
}
|
||||||
|
|
||||||
|
differences.Add(new DifferencePopup.Difference(property.Name, newValue, existingValue, i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return differences;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 15dc83aa064e348db8d3cd13a8ebd8b7
|
@ -1,3 +1,4 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.AI;
|
using UnityEngine.AI;
|
||||||
|
|
||||||
@ -76,12 +77,41 @@ namespace BlueWaterProject
|
|||||||
{
|
{
|
||||||
if (!npc.DoSeat)
|
if (!npc.DoSeat)
|
||||||
{
|
{
|
||||||
foreach (var table in tables)
|
// 확률 결정
|
||||||
|
var probability = Random.Range(0f, 1f);
|
||||||
|
|
||||||
|
if (probability <= 0.7f)
|
||||||
{
|
{
|
||||||
foreach (var seat in table.SeatPoints)
|
// 70% 확률: 비어 있는 좌석 중에서 랜덤 선택
|
||||||
|
var availableSeats = new List<Seat>();
|
||||||
|
foreach (var table in tables)
|
||||||
{
|
{
|
||||||
if (seat.IsUsing) continue;
|
foreach (var seat in table.SeatPoints)
|
||||||
AssignSeatToNpc(seat);
|
{
|
||||||
|
if (!seat.IsUsing) availableSeats.Add(seat);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (availableSeats.Count > 0)
|
||||||
|
{
|
||||||
|
var randomIndex = Random.Range(0, availableSeats.Count);
|
||||||
|
AssignSeatToNpc(availableSeats[randomIndex]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 30% 확률: 모든 좌석 중에서 랜덤 선택
|
||||||
|
var allSeats = new List<Seat>();
|
||||||
|
foreach (var table in tables)
|
||||||
|
{
|
||||||
|
allSeats.AddRange(table.SeatPoints);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allSeats.Count > 0)
|
||||||
|
{
|
||||||
|
var randomIndex = Random.Range(0, allSeats.Count);
|
||||||
|
AssignSeatToNpc(allSeats[randomIndex]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
8
BlueWater/Assets/Packages/ExcelDataReader.3.6.0.meta
Normal file
8
BlueWater/Assets/Packages/ExcelDataReader.3.6.0.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5f6124a557c154cb0bf3d78ad0cbda39
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/.signature.p7s
vendored
Normal file
BIN
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/.signature.p7s
vendored
Normal file
Binary file not shown.
33
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/ExcelDataReader.nuspec
vendored
Normal file
33
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/ExcelDataReader.nuspec
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||||
|
<metadata>
|
||||||
|
<id>ExcelDataReader</id>
|
||||||
|
<version>3.6.0</version>
|
||||||
|
<authors>ExcelDataReader developers</authors>
|
||||||
|
<owners>ExcelDataReader developers</owners>
|
||||||
|
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||||
|
<license type="expression">MIT</license>
|
||||||
|
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
|
||||||
|
<projectUrl>https://github.com/ExcelDataReader/ExcelDataReader</projectUrl>
|
||||||
|
<iconUrl>https://nugetgallery.blob.core.windows.net/icons/ExcelDataReader.2.1.png</iconUrl>
|
||||||
|
<description>Lightweight and fast library written in C# for reading Microsoft Excel files (2.0-2007).</description>
|
||||||
|
<tags>excel xls xlsx</tags>
|
||||||
|
<repository type="git" url="https://github.com/ExcelDataReader/ExcelDataReader.git" commit="e5b7d41b580603c866b9097496139080c0bba105" />
|
||||||
|
<dependencies>
|
||||||
|
<group targetFramework=".NETFramework2.0">
|
||||||
|
<dependency id="SharpZipLib" version="0.86.0" exclude="Build,Analyzers" />
|
||||||
|
</group>
|
||||||
|
<group targetFramework=".NETFramework4.5" />
|
||||||
|
<group targetFramework=".NETStandard1.3">
|
||||||
|
<dependency id="NETStandard.Library" version="1.6.1" exclude="Build,Analyzers" />
|
||||||
|
<dependency id="System.Data.Common" version="4.3.0" exclude="Build,Analyzers" />
|
||||||
|
</group>
|
||||||
|
<group targetFramework=".NETStandard2.0" />
|
||||||
|
</dependencies>
|
||||||
|
<frameworkAssemblies>
|
||||||
|
<frameworkAssembly assemblyName="System.Data" targetFramework=".NETFramework2.0, .NETFramework4.5" />
|
||||||
|
<frameworkAssembly assemblyName="System" targetFramework=".NETFramework2.0, .NETFramework4.5" />
|
||||||
|
<frameworkAssembly assemblyName="System.IO.Compression" targetFramework=".NETFramework4.5" />
|
||||||
|
</frameworkAssemblies>
|
||||||
|
</metadata>
|
||||||
|
</package>
|
7
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/ExcelDataReader.nuspec.meta
vendored
Normal file
7
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/ExcelDataReader.nuspec.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 412bb38b305a34e98addb3e0c647c80d
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib.meta
vendored
Normal file
8
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 874c347e659d4479396e802894f8c8e2
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib/net45.meta
vendored
Normal file
8
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib/net45.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e9f2ec082b2aa42fd89317af82cc5c9f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib/net45/ExcelDataReader.dll
vendored
Normal file
BIN
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib/net45/ExcelDataReader.dll
vendored
Normal file
Binary file not shown.
2
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib/net45/ExcelDataReader.dll.meta
vendored
Normal file
2
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib/net45/ExcelDataReader.dll.meta
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6c73703c55c084c6aba39f15caad23af
|
1680
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib/net45/ExcelDataReader.xml
vendored
Normal file
1680
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib/net45/ExcelDataReader.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib/net45/ExcelDataReader.xml.meta
vendored
Normal file
7
BlueWater/Assets/Packages/ExcelDataReader.3.6.0/lib/net45/ExcelDataReader.xml.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8f98804c557f343d89e91641ebffb974
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 81abb8eb25c6f480f8d77a3dbd6033f2
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/.signature.p7s
vendored
Normal file
BIN
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/.signature.p7s
vendored
Normal file
Binary file not shown.
28
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/ExcelDataReader.DataSet.nuspec
vendored
Normal file
28
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/ExcelDataReader.DataSet.nuspec
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||||
|
<metadata>
|
||||||
|
<id>ExcelDataReader.DataSet</id>
|
||||||
|
<version>3.6.0</version>
|
||||||
|
<authors>ExcelDataReader developers</authors>
|
||||||
|
<owners>ExcelDataReader developers</owners>
|
||||||
|
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||||
|
<license type="expression">MIT</license>
|
||||||
|
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
|
||||||
|
<projectUrl>https://github.com/ExcelDataReader/ExcelDataReader</projectUrl>
|
||||||
|
<iconUrl>https://nugetgallery.blob.core.windows.net/icons/ExcelDataReader.2.1.png</iconUrl>
|
||||||
|
<description>ExcelDataReader extension for reading Microsoft Excel files into System.Data.DataSet.</description>
|
||||||
|
<tags>excel xls xlsx dataset</tags>
|
||||||
|
<repository type="git" url="https://github.com/ExcelDataReader/ExcelDataReader.git" commit="e5b7d41b580603c866b9097496139080c0bba105" />
|
||||||
|
<dependencies>
|
||||||
|
<group targetFramework=".NETFramework2.0">
|
||||||
|
<dependency id="ExcelDataReader" version="3.6.0" exclude="Build,Analyzers" />
|
||||||
|
</group>
|
||||||
|
<group targetFramework=".NETFramework3.5">
|
||||||
|
<dependency id="ExcelDataReader" version="3.6.0" exclude="Build,Analyzers" />
|
||||||
|
</group>
|
||||||
|
<group targetFramework=".NETStandard2.0">
|
||||||
|
<dependency id="ExcelDataReader" version="3.6.0" exclude="Build,Analyzers" />
|
||||||
|
</group>
|
||||||
|
</dependencies>
|
||||||
|
</metadata>
|
||||||
|
</package>
|
7
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/ExcelDataReader.DataSet.nuspec.meta
vendored
Normal file
7
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/ExcelDataReader.DataSet.nuspec.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b51ada754e72f4180b67e9bebbbe20ce
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/lib.meta
vendored
Normal file
8
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/lib.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 11109328dc6ce4ac9928da300b3c1ea0
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/lib/net35.meta
vendored
Normal file
8
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/lib/net35.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 476e04bb22293496d905dcc20aea52c7
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/lib/net35/ExcelDataReader.DataSet.dll
vendored
Normal file
BIN
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/lib/net35/ExcelDataReader.DataSet.dll
vendored
Normal file
Binary file not shown.
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e72d261c8145e4bc8bde46077607e051
|
71
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/lib/net35/ExcelDataReader.DataSet.xml
vendored
Normal file
71
BlueWater/Assets/Packages/ExcelDataReader.DataSet.3.6.0/lib/net35/ExcelDataReader.DataSet.xml
vendored
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>ExcelDataReader.DataSet</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:ExcelDataReader.ExcelDataReaderExtensions">
|
||||||
|
<summary>
|
||||||
|
ExcelDataReader DataSet extensions
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:ExcelDataReader.ExcelDataReaderExtensions.AsDataSet(ExcelDataReader.IExcelDataReader,ExcelDataReader.ExcelDataSetConfiguration)">
|
||||||
|
<summary>
|
||||||
|
Converts all sheets to a DataSet
|
||||||
|
</summary>
|
||||||
|
<param name="self">The IExcelDataReader instance</param>
|
||||||
|
<param name="configuration">An optional configuration object to modify the behavior of the conversion</param>
|
||||||
|
<returns>A dataset with all workbook contents</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:ExcelDataReader.ExcelDataSetConfiguration">
|
||||||
|
<summary>
|
||||||
|
Processing configuration options and callbacks for IExcelDataReader.AsDataSet().
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:ExcelDataReader.ExcelDataSetConfiguration.UseColumnDataType">
|
||||||
|
<summary>
|
||||||
|
Gets or sets a value indicating whether to set the DataColumn.DataType property in a second pass.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:ExcelDataReader.ExcelDataSetConfiguration.ConfigureDataTable">
|
||||||
|
<summary>
|
||||||
|
Gets or sets a callback to obtain configuration options for a DataTable.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:ExcelDataReader.ExcelDataSetConfiguration.FilterSheet">
|
||||||
|
<summary>
|
||||||
|
Gets or sets a callback to determine whether to include the current sheet in the DataSet. Called once per sheet before ConfigureDataTable.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:ExcelDataReader.ExcelDataTableConfiguration">
|
||||||
|
<summary>
|
||||||
|
Processing configuration options and callbacks for AsDataTable().
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:ExcelDataReader.ExcelDataTableConfiguration.EmptyColumnNamePrefix">
|
||||||
|
<summary>
|
||||||
|
Gets or sets a value indicating the prefix of generated column names.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:ExcelDataReader.ExcelDataTableConfiguration.UseHeaderRow">
|
||||||
|
<summary>
|
||||||
|
Gets or sets a value indicating whether to use a row from the data as column names.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:ExcelDataReader.ExcelDataTableConfiguration.ReadHeaderRow">
|
||||||
|
<summary>
|
||||||
|
Gets or sets a callback to determine which row is the header row. Only called when UseHeaderRow = true.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:ExcelDataReader.ExcelDataTableConfiguration.FilterRow">
|
||||||
|
<summary>
|
||||||
|
Gets or sets a callback to determine whether to include the current row in the DataTable.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:ExcelDataReader.ExcelDataTableConfiguration.FilterColumn">
|
||||||
|
<summary>
|
||||||
|
Gets or sets a callback to determine whether to include the specific column in the DataTable. Called once per column after reading the headers.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4ebc419a397284610a2762f00b7f8200
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
BlueWater/Assets/Resources/Excel.meta
Normal file
8
BlueWater/Assets/Resources/Excel.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0b452a245db9f424f92f4238ded49adc
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
BlueWater/Assets/Resources/Excel/customer_table.xlsx
Normal file
BIN
BlueWater/Assets/Resources/Excel/customer_table.xlsx
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 868f1f5f8663c4fe0b2c271f50f4606d
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
BlueWater/Assets/Resources/JSON.meta
Normal file
8
BlueWater/Assets/Resources/JSON.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 91449ffd9dec84c5284a14b729455f7d
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
172
BlueWater/Assets/Resources/JSON/customer_table.json
Normal file
172
BlueWater/Assets/Resources/JSON/customer_table.json
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"idx": 10001,
|
||||||
|
"name": "wildman1",
|
||||||
|
"speed": 3,
|
||||||
|
"hurry": 3,
|
||||||
|
"wait": 3,
|
||||||
|
"base_happy_point": 30,
|
||||||
|
"taste_1": 2,
|
||||||
|
"taste_2": 1,
|
||||||
|
"taste_3": 0,
|
||||||
|
"picky_1": 11,
|
||||||
|
"picky_2": 0,
|
||||||
|
"picky_3": 0,
|
||||||
|
"bully": 0,
|
||||||
|
"tip": 11100,
|
||||||
|
"dialogue": 101
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 10002,
|
||||||
|
"name": "wildman2",
|
||||||
|
"speed": 3,
|
||||||
|
"hurry": 3,
|
||||||
|
"wait": 3,
|
||||||
|
"base_happy_point": 30,
|
||||||
|
"taste_1": 2,
|
||||||
|
"taste_2": 1,
|
||||||
|
"taste_3": 0,
|
||||||
|
"picky_1": 11,
|
||||||
|
"picky_2": 0,
|
||||||
|
"picky_3": 0,
|
||||||
|
"bully": 0,
|
||||||
|
"tip": 22200,
|
||||||
|
"dialogue": 101
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 10003,
|
||||||
|
"name": "viking1",
|
||||||
|
"speed": 3,
|
||||||
|
"hurry": 3,
|
||||||
|
"wait": 3,
|
||||||
|
"base_happy_point": 30,
|
||||||
|
"taste_1": 2,
|
||||||
|
"taste_2": 1,
|
||||||
|
"taste_3": 0,
|
||||||
|
"picky_1": 31,
|
||||||
|
"picky_2": 0,
|
||||||
|
"picky_3": 0,
|
||||||
|
"bully": 1,
|
||||||
|
"tip": 22200,
|
||||||
|
"dialogue": 102
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 10004,
|
||||||
|
"name": "viking2",
|
||||||
|
"speed": 3,
|
||||||
|
"hurry": 3,
|
||||||
|
"wait": 3,
|
||||||
|
"base_happy_point": 30,
|
||||||
|
"taste_1": 2,
|
||||||
|
"taste_2": 1,
|
||||||
|
"taste_3": 0,
|
||||||
|
"picky_1": 31,
|
||||||
|
"picky_2": 0,
|
||||||
|
"picky_3": 0,
|
||||||
|
"bully": 0,
|
||||||
|
"tip": 32200,
|
||||||
|
"dialogue": 102
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 10005,
|
||||||
|
"name": "pirate1",
|
||||||
|
"speed": 3,
|
||||||
|
"hurry": 3,
|
||||||
|
"wait": 3,
|
||||||
|
"base_happy_point": 30,
|
||||||
|
"taste_1": 1,
|
||||||
|
"taste_2": 2,
|
||||||
|
"taste_3": 0,
|
||||||
|
"picky_1": 41,
|
||||||
|
"picky_2": 0,
|
||||||
|
"picky_3": 0,
|
||||||
|
"bully": 0,
|
||||||
|
"tip": 33300,
|
||||||
|
"dialogue": 103
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 10006,
|
||||||
|
"name": "oldman1",
|
||||||
|
"speed": 1,
|
||||||
|
"hurry": 1,
|
||||||
|
"wait": 1,
|
||||||
|
"base_happy_point": 30,
|
||||||
|
"taste_1": 1,
|
||||||
|
"taste_2": 2,
|
||||||
|
"taste_3": 0,
|
||||||
|
"picky_1": 41,
|
||||||
|
"picky_2": 0,
|
||||||
|
"picky_3": 0,
|
||||||
|
"bully": 1,
|
||||||
|
"tip": 44200,
|
||||||
|
"dialogue": 104
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 10007,
|
||||||
|
"name": "soldier1",
|
||||||
|
"speed": 2,
|
||||||
|
"hurry": 2,
|
||||||
|
"wait": 2,
|
||||||
|
"base_happy_point": 30,
|
||||||
|
"taste_1": 1,
|
||||||
|
"taste_2": 2,
|
||||||
|
"taste_3": 0,
|
||||||
|
"picky_1": 41,
|
||||||
|
"picky_2": 0,
|
||||||
|
"picky_3": 0,
|
||||||
|
"bully": 0,
|
||||||
|
"tip": 65432,
|
||||||
|
"dialogue": 105
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 10008,
|
||||||
|
"name": "soldier2",
|
||||||
|
"speed": 2,
|
||||||
|
"hurry": 2,
|
||||||
|
"wait": 2,
|
||||||
|
"base_happy_point": 20,
|
||||||
|
"taste_1": 1,
|
||||||
|
"taste_2": 2,
|
||||||
|
"taste_3": 0,
|
||||||
|
"picky_1": 21,
|
||||||
|
"picky_2": 0,
|
||||||
|
"picky_3": 0,
|
||||||
|
"bully": 0,
|
||||||
|
"tip": 105400,
|
||||||
|
"dialogue": 106
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 10009,
|
||||||
|
"name": "chinaman1",
|
||||||
|
"speed": 2,
|
||||||
|
"hurry": 2,
|
||||||
|
"wait": 1,
|
||||||
|
"base_happy_point": 20,
|
||||||
|
"taste_1": 1,
|
||||||
|
"taste_2": 2,
|
||||||
|
"taste_3": 0,
|
||||||
|
"picky_1": 21,
|
||||||
|
"picky_2": 0,
|
||||||
|
"picky_3": 0,
|
||||||
|
"bully": 0,
|
||||||
|
"tip": 1510500,
|
||||||
|
"dialogue": 107
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 10010,
|
||||||
|
"name": "knight1",
|
||||||
|
"speed": 2,
|
||||||
|
"hurry": 2,
|
||||||
|
"wait": 1,
|
||||||
|
"base_happy_point": 20,
|
||||||
|
"taste_1": 1,
|
||||||
|
"taste_2": 2,
|
||||||
|
"taste_3": 0,
|
||||||
|
"picky_1": 21,
|
||||||
|
"picky_2": 0,
|
||||||
|
"picky_3": 0,
|
||||||
|
"bully": 1,
|
||||||
|
"tip": 20201000,
|
||||||
|
"dialogue": 108
|
||||||
|
}
|
||||||
|
]
|
7
BlueWater/Assets/Resources/JSON/customer_table.json.meta
Normal file
7
BlueWater/Assets/Resources/JSON/customer_table.json.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e306e1af477c947e2b759b1d56078e0f
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -1,4 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package id="ExcelDataReader" version="3.6.0" manuallyInstalled="true" />
|
||||||
|
<package id="ExcelDataReader.DataSet" version="3.6.0" manuallyInstalled="true" />
|
||||||
<package id="Newtonsoft.Json" version="13.0.3" manuallyInstalled="true" />
|
<package id="Newtonsoft.Json" version="13.0.3" manuallyInstalled="true" />
|
||||||
</packages>
|
</packages>
|
Loading…
Reference in New Issue
Block a user