Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
SweetJJuya 2024-09-02 14:07:10 +09:00
commit 5ba54aceb9
120 changed files with 39173 additions and 1510 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,52 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7988510701821828726
MonoBehaviour:
m_ObjectHideFlags: 3
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3}
m_Name: Bloom
m_EditorClassIdentifier:
active: 0
skipIterations:
m_OverrideState: 0
m_Value: 1
threshold:
m_OverrideState: 0
m_Value: 0.9
intensity:
m_OverrideState: 0
m_Value: 0
scatter:
m_OverrideState: 0
m_Value: 0.7
clamp:
m_OverrideState: 0
m_Value: 65472
tint:
m_OverrideState: 0
m_Value: {r: 1, g: 1, b: 1, a: 1}
highQualityFiltering:
m_OverrideState: 0
m_Value: 0
downscale:
m_OverrideState: 0
m_Value: 0
maxIterations:
m_OverrideState: 0
m_Value: 6
dirtTexture:
m_OverrideState: 0
m_Value: {fileID: 0}
dimension: 1
dirtIntensity:
m_OverrideState: 0
m_Value: 0
--- !u!114 &-3394915221019087120 --- !u!114 &-3394915221019087120
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 3 m_ObjectHideFlags: 3
@ -30,6 +77,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
components: components:
- {fileID: 8563356217564074714} - {fileID: 8563356217564074714}
- {fileID: -7988510701821828726}
--- !u!114 &1921075280319716275 --- !u!114 &1921075280319716275
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 3 m_ObjectHideFlags: 3

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 01a36647bf7c26e4989ef4d340fe1e3f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -26,7 +26,7 @@ namespace BlueWater.BehaviorTrees.Actions
{ {
_foodBalloonUi = _customer.FoodBalloonUi; _foodBalloonUi = _customer.FoodBalloonUi;
// TODO : 음료가 다양해질 때 수정해야함 // TODO : 음료가 다양해질 때 수정해야함
_foodBalloonUi.OrderFood(40001, _customerData.WaitTime, _customerData.HurryTime); _foodBalloonUi.OrderFood("40001", _customerData.WaitTime, _customerData.HurryTime);
_customer.OnInteraction += HandleBeverageInteraction; _customer.OnInteraction += HandleBeverageInteraction;
_customer.RegisterPlayerInteraction(); _customer.RegisterPlayerInteraction();
@ -76,7 +76,7 @@ namespace BlueWater.BehaviorTrees.Actions
} }
// TODO : 음료가 다양해질 때 수정해야함 // TODO : 음료가 다양해질 때 수정해야함
if (carriedBeverageData.Idx == 40001) if (carriedBeverageData.Idx == "40001")
{ {
tycoonPlayer.GiveItem(); tycoonPlayer.GiveItem();
_foodBalloonUi.ReceiveFood(); _foodBalloonUi.ReceiveFood();

View File

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using BehaviorDesigner.Runtime.Tasks; using BehaviorDesigner.Runtime.Tasks;
using BlueWater.Items; using BlueWater.Items;
using BlueWater.Npcs.Customers; using BlueWater.Npcs.Customers;
@ -17,7 +16,7 @@ namespace BlueWater.BehaviorTrees.Actions
private Customer _customer; private Customer _customer;
private CustomerData _customerData; private CustomerData _customerData;
private FoodBalloonUi _foodBalloonUi; private FoodBalloonUi _foodBalloonUi;
private int _orderFoodIdx; private string _orderFoodIdx;
public override void OnAwake() public override void OnAwake()
{ {

View File

@ -7,12 +7,12 @@ namespace BlueWater
public class CharacterData public class CharacterData
{ {
[field: SerializeField] [field: SerializeField]
public int CharacterIdx { get; set; } public string CharacterIdx { get; set; }
[field: SerializeField] [field: SerializeField]
public string Name { get; set; } public string Name { get; set; }
public CharacterData(int characterIdx, string name) public CharacterData(string characterIdx, string name)
{ {
CharacterIdx = characterIdx; CharacterIdx = characterIdx;
Name = name; Name = name;

View File

@ -15,7 +15,7 @@ namespace BlueWater.Enemies.Bosses
public string DisplayName { get; private set; } public string DisplayName { get; private set; }
[field: SerializeField] [field: SerializeField]
public int CharacterIdx { get; private set; } public string CharacterIdx { get; private set; }
[field: SerializeField] [field: SerializeField]
public int MaxHealthPoint { get; private set; } public int MaxHealthPoint { get; private set; }

View File

@ -31,7 +31,7 @@ namespace BlueWater
public event Action<ItemSlot, bool> OnChangeItemSlot; public event Action<ItemSlot, bool> OnChangeItemSlot;
public ItemSlot GetItemByIdx(int idx) public ItemSlot GetItemByIdx(string idx)
{ {
return ItemSlotList.Find(i => i.Idx == idx); return ItemSlotList.Find(i => i.Idx == idx);
} }

View File

@ -178,7 +178,7 @@ namespace BlueWater.Npcs.Customers
BarkTrigger = transform.Find("DialogueSystem").GetComponent<BarkTrigger>(); BarkTrigger = transform.Find("DialogueSystem").GetComponent<BarkTrigger>();
PayMoneyParticle = transform.Find("PayMoneyParticle").GetComponent<ParticleSystem>(); PayMoneyParticle = transform.Find("PayMoneyParticle").GetComponent<ParticleSystem>();
InteractionCanvas = transform.Find("InteractionCanvas").GetComponent<Canvas>(); InteractionCanvas = transform.Find("InteractionCanvas").GetComponent<Canvas>();
InteractionCanvas.worldCamera = TycoonCameraManager.Instance.UiCamera; //InteractionCanvas.worldCamera = TycoonCameraManager.Instance.UiCamera;
InteractionUi = InteractionCanvas.transform.Find("InteractionUi"); InteractionUi = InteractionCanvas.transform.Find("InteractionUi");
InteractionUi.localScale = Vector3.one * (1 / transform.localScale.x); InteractionUi.localScale = Vector3.one * (1 / transform.localScale.x);
FoodBalloonUi = InteractionCanvas.transform.Find("FoodBalloonUi").GetComponent<FoodBalloonUi>(); FoodBalloonUi = InteractionCanvas.transform.Find("FoodBalloonUi").GetComponent<FoodBalloonUi>();

View File

@ -12,7 +12,7 @@ namespace BlueWater.Npcs.Customers
{ {
[BoxGroup("Json 데이터 영역")] [BoxGroup("Json 데이터 영역")]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
public int Idx { get; set; } public string Idx { get; set; }
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
public string Name { get; set; } public string Name { get; set; }

View File

@ -1,23 +1,11 @@
using System.Collections.Generic; using BlueWater.Items;
using BlueWater.Interfaces;
using UnityEngine; using UnityEngine;
namespace BlueWater.Npcs.Customers namespace BlueWater.Npcs.Customers
{ {
[CreateAssetMenu(fileName = "CustomerDataTable", menuName = "ScriptableObjects/CustomerDataTable")] [CreateAssetMenu(fileName = "CustomerDataTable", menuName = "ScriptableObjects/CustomerDataTable")]
public class CustomerDataSo : ScriptableObject, IDataContainer<CustomerData> public class CustomerDataSo : DataSo<CustomerData>
{ {
[field: SerializeField]
public List<CustomerData> CustomerDatas { get; private set; }
public List<CustomerData> GetData()
{
return CustomerDatas;
}
public void SetData(List<CustomerData> customerDatas)
{
CustomerDatas = customerDatas;
}
} }
} }

View File

@ -31,7 +31,7 @@ namespace BlueWater.Players.Tycoons
_itemRenderer = transform.Find("VisualLook/Item").GetComponent<SpriteRenderer>(); _itemRenderer = transform.Find("VisualLook/Item").GetComponent<SpriteRenderer>();
} }
public void CarryItem(int itemIdx, bool isUsingSprite = true, ItemQuality itemQuality = ItemQuality.Normal) public void CarryItem(string itemIdx, bool isUsingSprite = true, ItemQuality itemQuality = ItemQuality.Normal)
{ {
if (_isCarriedItem) if (_isCarriedItem)
{ {

View File

@ -133,17 +133,6 @@ namespace BlueWater.Players.Tycoons
} }
} }
public void OnEscapeBar(InputAction.CallbackContext context)
{
var bar = FindAnyObjectByType<Bar>();
if (!bar) return;
if (context.performed)
{
bar.Escape();
}
}
#endregion #endregion
#region Methods #region Methods

View File

@ -125,7 +125,7 @@ namespace BlueWater.Players.Tycoons
public void GetMoney(int money) => DataManager.Instance.GetMoney(money); public void GetMoney(int money) => DataManager.Instance.GetMoney(money);
public bool IsCarriedItem() => TycoonCarryHandler.IsCarriedItem(); public bool IsCarriedItem() => TycoonCarryHandler.IsCarriedItem();
public void CarryItem(int itemIdx, bool isUsingSprite = true, ItemQuality itemQuality = ItemQuality.Normal) public void CarryItem(string itemIdx, bool isUsingSprite = true, ItemQuality itemQuality = ItemQuality.Normal)
{ {
TycoonCarryHandler.CarryItem(itemIdx, isUsingSprite, itemQuality); TycoonCarryHandler.CarryItem(itemIdx, isUsingSprite, itemQuality);
if (!isUsingSprite) if (!isUsingSprite)

View File

@ -28,10 +28,6 @@ namespace BlueWater
[field: SerializeField] [field: SerializeField]
public Inventory Inventory { get; private set; } public Inventory Inventory { get; private set; }
[field: Title("아이템 데이터")]
[field: SerializeField]
public List<int> FoodRecipes { get; private set; } = new();
[field: Title("타이쿤 데이터")] [field: Title("타이쿤 데이터")]
[field: SerializeField] [field: SerializeField]
public TycoonData TycoonData { get; private set; } public TycoonData TycoonData { get; private set; }
@ -39,7 +35,6 @@ namespace BlueWater
[field: Title("실시간 데이터")] [field: Title("실시간 데이터")]
public int Gold { get; set; } public int Gold { get; set; }
public event Action<FoodData> OnChangeFoodRecipe;
public event Action<int> OnChangeGold; public event Action<int> OnChangeGold;
private void Start() private void Start()
@ -49,37 +44,30 @@ namespace BlueWater
public void TestData() public void TestData()
{ {
Inventory.AddItem(new ItemSlot(10107, 2)); Inventory.AddItem(new ItemSlot("10107", 2));
Inventory.AddItem(new ItemSlot(10108, 1)); Inventory.AddItem(new ItemSlot("10108", 1));
Inventory.AddItem(new ItemSlot(10109, 2)); Inventory.AddItem(new ItemSlot("10109", 2));
Inventory.AddItem(new ItemSlot(10201, 1)); Inventory.AddItem(new ItemSlot("10201", 1));
Inventory.AddItem(new ItemSlot(10404, 9)); Inventory.AddItem(new ItemSlot("10404", 9));
Inventory.AddItem(new ItemSlot(10503, 4)); Inventory.AddItem(new ItemSlot("10503", 4));
Inventory.AddItem(new ItemSlot(10507, 15)); Inventory.AddItem(new ItemSlot("10507", 15));
Inventory.AddItem(new ItemSlot(10508, 100)); Inventory.AddItem(new ItemSlot("10508", 100));
Inventory.AddItem(new ItemSlot(10603, 3)); Inventory.AddItem(new ItemSlot("10603", 3));
Inventory.AddItem(new ItemSlot(10701, 999)); Inventory.AddItem(new ItemSlot("10701", 999));
Inventory.AddItem(new ItemSlot(10704, 5396)); Inventory.AddItem(new ItemSlot("10704", 5396));
Inventory.AddItem(new ItemSlot(10705, 66)); Inventory.AddItem(new ItemSlot("10705", 66));
Inventory.AddItem(new ItemSlot(10706, 35)); Inventory.AddItem(new ItemSlot("10706", 35));
Inventory.AddItem(new ItemSlot(60001, 2)); Inventory.AddItem(new ItemSlot("60001", 2));
AddFoodRecipe(30001); TycoonData.AddFoodRecipe("30001");
AddFoodRecipe(30002); TycoonData.AddFoodRecipe("30002");
AddFoodRecipe(30004); TycoonData.AddFoodRecipe("30004");
AddFoodRecipe(30005); TycoonData.AddFoodRecipe("30005");
AddFoodRecipe(30006); TycoonData.AddFoodRecipe("30006");
}
public void AddFoodRecipe(int idx) TycoonData.AddDrinkRecipe("Drink001");
{ TycoonData.AddDrinkRecipe("Drink002");
if (FoodRecipes.Contains(idx)) return; TycoonData.AddDrinkRecipe("Ice001");
var foodData = ItemManager.Instance.GetFoodDataByIdx(idx);
if (foodData == null) return;
FoodRecipes.Add(idx);
OnChangeFoodRecipe?.Invoke(foodData);
} }
public void GetMoney(int money) public void GetMoney(int money)

View File

@ -18,11 +18,13 @@ namespace BlueWater.Editors
None = 0, None = 0,
ItemDataTable, ItemDataTable,
CustomerDataTable, CustomerDataTable,
FoodDataTable FoodDataTable,
CocktailDataTable,
DrinkDataTable
} }
private string _jsonFilePath = "Assets/Resources/Json/FileName"; private string _jsonFilePath = "Assets/Resources/Json/FileName";
private string _assetFilePath = "Assets/02.Scripts/ScriptableObject"; private string _assetFilePath = "Assets/02.Scripts/ScriptableObject/Item";
private DataType _dataType = DataType.None; private DataType _dataType = DataType.None;
[MenuItem("Tools/Json파일 ScriptableObject로 자동 변환")] [MenuItem("Tools/Json파일 ScriptableObject로 자동 변환")]
@ -78,6 +80,12 @@ namespace BlueWater.Editors
case DataType.FoodDataTable: case DataType.FoodDataTable:
LoadData<FoodData, FoodDataSo>(); LoadData<FoodData, FoodDataSo>();
break; break;
case DataType.CocktailDataTable:
LoadData<CocktailData, CocktailDataSo>();
break;
case DataType.DrinkDataTable:
LoadData<DrinkData, DrinkDataSo>();
break;
default: default:
EditorUtility.DisplayDialog("경고 메세지", "데이터 타입이 제대로 설정되어있는지 확인해주세요.", "OK"); EditorUtility.DisplayDialog("경고 메세지", "데이터 타입이 제대로 설정되어있는지 확인해주세요.", "OK");
Debug.LogError("데이터 타입이 제대로 설정되어있는지 확인해주세요."); Debug.LogError("데이터 타입이 제대로 설정되어있는지 확인해주세요.");
@ -150,7 +158,7 @@ namespace BlueWater.Editors
{ {
existingData ??= new List<T>(); existingData ??= new List<T>();
var newDataIdxSet = new HashSet<int>(); var newDataIdxSet = new HashSet<string>();
foreach (var newDataItem in newData) foreach (var newDataItem in newData)
{ {
if (newDataItem != null) if (newDataItem != null)
@ -161,7 +169,7 @@ namespace BlueWater.Editors
existingData.RemoveAll(item => item == null || !newDataIdxSet.Contains(item.Idx)); existingData.RemoveAll(item => item == null || !newDataIdxSet.Contains(item.Idx));
var existingDataDict = new Dictionary<int, T>(); var existingDataDict = new Dictionary<string, T>();
foreach (var data in existingData) foreach (var data in existingData)
{ {
if (data != null) if (data != null)

View File

@ -0,0 +1,10 @@
using System;
using UnityEngine;
namespace BlueWater
{
public static class GlobalEvents
{
public static Action<float, float, Color?, float> FadeInOut;
}
}

View File

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

View File

@ -2,6 +2,6 @@
{ {
public interface IIdx public interface IIdx
{ {
int Idx { get; } string Idx { get; }
} }
} }

View File

@ -0,0 +1,22 @@
using System.Collections.Generic;
using BlueWater.Interfaces;
using UnityEngine;
namespace BlueWater.Items
{
public class DataSo<T> : ScriptableObject, IDataContainer<T>
{
[field: SerializeField]
public List<T> Datas { get; private set; }
public List<T> GetData()
{
return Datas;
}
public void SetData(List<T> datas)
{
Datas = datas;
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 198da33a8dfe2bc419a66190c7a797fc

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 47b7c7086a4367c42888ee19cb8e46ab
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
using BlueWater.Interfaces;
using Newtonsoft.Json;
using Sirenix.OdinInspector;
using UnityEngine;
namespace BlueWater.Items
{
[Serializable]
public class CocktailData : IIdx
{
[BoxGroup("Json 데이터 영역")]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
public string Idx { get; set; }
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
public string Name { get; set; }
[field: SerializeField, Tooltip("오차 범위"), BoxGroup("Json 데이터 영역")]
public int RatioRange { get; set; }
[field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx1 { get; set; }
[field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientRatio1 { get; set; }
[field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx2 { get; set; }
[field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientRatio2 { get; set; }
[field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx3 { get; set; }
[field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientRatio3 { get; set; }
[field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx4 { get; set; }
[field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientRatio4 { get; set; }
[field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx5 { get; set; }
[field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientRatio5 { get; set; }
[BoxGroup("직접 추가하는 영역")]
[field: SerializeField, BoxGroup("직접 추가하는 영역")]
public Sprite Sprite { get; set; }
public List<CocktailIngredient> GetValidIngredients()
{
var ingredients = new List<CocktailIngredient>(5);
if (!string.IsNullOrEmpty(IngredientIdx1)) ingredients.Add(new CocktailIngredient(IngredientIdx1, IngredientRatio1));
if (!string.IsNullOrEmpty(IngredientIdx2)) ingredients.Add(new CocktailIngredient(IngredientIdx2, IngredientRatio2));
if (!string.IsNullOrEmpty(IngredientIdx3)) ingredients.Add(new CocktailIngredient(IngredientIdx3, IngredientRatio3));
if (!string.IsNullOrEmpty(IngredientIdx4)) ingredients.Add(new CocktailIngredient(IngredientIdx4, IngredientRatio4));
if (!string.IsNullOrEmpty(IngredientIdx5)) ingredients.Add(new CocktailIngredient(IngredientIdx5, IngredientRatio5));
return ingredients;
}
}
}

View File

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

View File

@ -0,0 +1,10 @@
using UnityEngine;
namespace BlueWater.Items
{
[CreateAssetMenu(fileName = "CocktailDataTable", menuName = "ScriptableObjects/CocktailDataTable")]
public class CocktailDataSo : DataSo<CocktailData>
{
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 03802f3276c69a348aaa2515377b47cc

View File

@ -0,0 +1,17 @@
using System;
namespace BlueWater.Items
{
[Serializable]
public class CocktailIngredient
{
public string Idx { get; set; }
public int Ratio { get; set; }
public CocktailIngredient(string idx, int quantity)
{
Idx = idx;
Ratio = quantity;
}
}
}

View File

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

View File

@ -0,0 +1,81 @@
using System;
using System.Collections.Generic;
using BlueWater.Interfaces;
using Sirenix.OdinInspector;
using UnityEngine;
namespace BlueWater.Items
{
public enum DrinkCategory
{
None = 0,
Alcohol,
Garnish
}
[Serializable]
public class DrinkData : IIdx
{
[BoxGroup("Json 데이터 영역")]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
public string Idx { get; set; }
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
public string Name { get; set; }
[field: SerializeField, Tooltip("종류"), BoxGroup("Json 데이터 영역")]
public DrinkCategory Category { get; set; }
[field: SerializeField, Tooltip("총량"), BoxGroup("Json 데이터 영역")]
public int Amount { get; set; }
[field: SerializeField, Tooltip("도수"), BoxGroup("Json 데이터 영역")]
public int AlcoholVolume { get; set; }
[field: SerializeField, Tooltip("온도"), BoxGroup("Json 데이터 영역")]
public int CoolWarm { get; set; }
[field: SerializeField, Tooltip("맛"), BoxGroup("Json 데이터 영역")]
public int BitterSweet { get; set; }
[field: SerializeField, Tooltip("향"), BoxGroup("Json 데이터 영역")]
public int Scent { get; set; }
[field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx1 { get; set; }
[field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientQuantity1 { get; set; }
[field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx2 { get; set; }
[field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientQuantity2 { get; set; }
[field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx3 { get; set; }
[field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientQuantity3 { get; set; }
[BoxGroup("직접 추가하는 영역")]
[field: SerializeField, BoxGroup("직접 추가하는 영역")]
public Sprite Sprite { get; set; }
[BoxGroup("직접 추가하는 영역")]
[field: SerializeField, BoxGroup("직접 추가하는 영역")]
public Color Color { get; set; }
public List<Ingredient> GetValidIngredients()
{
var ingredients = new List<Ingredient>(3);
if (!string.IsNullOrEmpty(IngredientIdx1)) ingredients.Add(new Ingredient(IngredientIdx1, IngredientQuantity1));
if (!string.IsNullOrEmpty(IngredientIdx2)) ingredients.Add(new Ingredient(IngredientIdx2, IngredientQuantity2));
if (!string.IsNullOrEmpty(IngredientIdx3)) ingredients.Add(new Ingredient(IngredientIdx3, IngredientQuantity3));
return ingredients;
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 6fdef58471902aa48b2667e02d39f225

View File

@ -0,0 +1,10 @@
using UnityEngine;
namespace BlueWater.Items
{
[CreateAssetMenu(fileName = "DrinkDataTable", menuName = "ScriptableObjects/DrinkDataTable")]
public class DrinkDataSo : DataSo<DrinkData>
{
}
}

View File

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

View File

@ -7,7 +7,7 @@ namespace BlueWater.Items
public class DropItem public class DropItem
{ {
[field: SerializeField] [field: SerializeField]
public int ItemIdx { get; set; } public string ItemIdx { get; set; }
[field: SerializeField] [field: SerializeField]
public int DropRate { get; set; } public int DropRate { get; set; }

View File

@ -29,7 +29,7 @@ namespace BlueWater.Items
{ {
[BoxGroup("Json 데이터 영역")] [BoxGroup("Json 데이터 영역")]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
public int Idx { get; set; } public string Idx { get; set; }
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
public string Name { get; set; } public string Name { get; set; }
@ -47,31 +47,31 @@ namespace BlueWater.Items
public int Plate { get; set; } public int Plate { get; set; }
[field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientIdx1 { get; set; } public string IngredientIdx1 { get; set; }
[field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientQuantity1 { get; set; } public int IngredientQuantity1 { get; set; }
[field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientIdx2 { get; set; } public string IngredientIdx2 { get; set; }
[field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientQuantity2 { get; set; } public int IngredientQuantity2 { get; set; }
[field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientIdx3 { get; set; } public string IngredientIdx3 { get; set; }
[field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientQuantity3 { get; set; } public int IngredientQuantity3 { get; set; }
[field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientIdx4 { get; set; } public string IngredientIdx4 { get; set; }
[field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientQuantity4 { get; set; } public int IngredientQuantity4 { get; set; }
[field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientIdx5 { get; set; } public string IngredientIdx5 { get; set; }
[field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
public int IngredientQuantity5 { get; set; } public int IngredientQuantity5 { get; set; }
@ -80,11 +80,11 @@ namespace BlueWater.Items
{ {
var ingredients = new List<Ingredient>(5); var ingredients = new List<Ingredient>(5);
if (IngredientIdx1 != 0) ingredients.Add(new Ingredient(IngredientIdx1, IngredientQuantity1)); if (!string.IsNullOrEmpty(IngredientIdx1)) ingredients.Add(new Ingredient(IngredientIdx1, IngredientQuantity1));
if (IngredientIdx2 != 0) ingredients.Add(new Ingredient(IngredientIdx2, IngredientQuantity2)); if (!string.IsNullOrEmpty(IngredientIdx2)) ingredients.Add(new Ingredient(IngredientIdx2, IngredientQuantity2));
if (IngredientIdx3 != 0) ingredients.Add(new Ingredient(IngredientIdx3, IngredientQuantity3)); if (!string.IsNullOrEmpty(IngredientIdx3)) ingredients.Add(new Ingredient(IngredientIdx3, IngredientQuantity3));
if (IngredientIdx4 != 0) ingredients.Add(new Ingredient(IngredientIdx4, IngredientQuantity4)); if (!string.IsNullOrEmpty(IngredientIdx4)) ingredients.Add(new Ingredient(IngredientIdx4, IngredientQuantity4));
if (IngredientIdx5 != 0) ingredients.Add(new Ingredient(IngredientIdx5, IngredientQuantity5)); if (!string.IsNullOrEmpty(IngredientIdx5)) ingredients.Add(new Ingredient(IngredientIdx5, IngredientQuantity5));
return ingredients; return ingredients;
} }

View File

@ -1,23 +1,10 @@
using System.Collections.Generic;
using BlueWater.Interfaces;
using UnityEngine; using UnityEngine;
namespace BlueWater.Items namespace BlueWater.Items
{ {
[CreateAssetMenu(fileName = "FoodDataTable", menuName = "ScriptableObjects/FoodDataTable")] [CreateAssetMenu(fileName = "FoodDataTable", menuName = "ScriptableObjects/FoodDataTable")]
public class FoodDataSo : ScriptableObject, IDataContainer<FoodData> public class FoodDataSo : DataSo<FoodData>
{ {
[field: SerializeField]
public List<FoodData> FoodDatas { get; private set; }
public List<FoodData> GetData()
{
return FoodDatas;
}
public void SetData(List<FoodData> foodDatas)
{
FoodDatas = foodDatas;
}
} }
} }

View File

@ -5,10 +5,10 @@ namespace BlueWater.Items
[Serializable] [Serializable]
public class Ingredient public class Ingredient
{ {
public int Idx { get; set; } public string Idx { get; set; }
public int Quantity { get; set; } public int Quantity { get; set; }
public Ingredient(int idx, int quantity) public Ingredient(string idx, int quantity)
{ {
Idx = idx; Idx = idx;
Quantity = quantity; Quantity = quantity;

View File

@ -39,7 +39,7 @@ namespace BlueWater.Items
{ {
[BoxGroup("Json 데이터 영역")] [BoxGroup("Json 데이터 영역")]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
public int Idx { get; set; } public string Idx { get; set; }
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
public string Name { get; set; } public string Name { get; set; }
@ -70,7 +70,7 @@ namespace BlueWater.Items
public Item ItemPrefab { get; set; } public Item ItemPrefab { get; set; }
[JsonConstructor] [JsonConstructor]
public ItemData(int idx, string name, ItemType type, IngredientType ingredientType, ItemQuality quality, int price, public ItemData(string idx, string name, ItemType type, IngredientType ingredientType, ItemQuality quality, int price,
int weight, string description, Sprite sprite, Item itemPrefab) int weight, string description, Sprite sprite, Item itemPrefab)
{ {
Idx = idx; Idx = idx;

View File

@ -1,23 +1,10 @@
using System.Collections.Generic;
using BlueWater.Interfaces;
using UnityEngine; using UnityEngine;
namespace BlueWater.Items namespace BlueWater.Items
{ {
[CreateAssetMenu(fileName = "ItemTable", menuName = "ScriptableObjects/ItemTable")] [CreateAssetMenu(fileName = "ItemTable", menuName = "ScriptableObjects/ItemTable")]
public class ItemDataSo : ScriptableObject, IDataContainer<ItemData> public class ItemDataSo : DataSo<ItemData>
{ {
[field: SerializeField]
public List<ItemData> ItemDataList { get; private set; }
public List<ItemData> GetData()
{
return ItemDataList;
}
public void SetData(List<ItemData> itemDataList)
{
ItemDataList = itemDataList;
}
} }
} }

View File

@ -43,16 +43,16 @@ namespace BlueWater.Items
private static List<ItemDropTable> ParseJsonToCharacterDrops(string itemDropJsonString, string characterDataJsonString) private static List<ItemDropTable> ParseJsonToCharacterDrops(string itemDropJsonString, string characterDataJsonString)
{ {
var newItemDropTables = new List<ItemDropTable>(); var newItemDropTables = new List<ItemDropTable>();
var itemDropTables = new Dictionary<int, ItemDropTable>(); var itemDropTables = new Dictionary<string, ItemDropTable>();
var characterDataDictionary = ParseCharacterDataJson(characterDataJsonString); var characterDataDictionary = ParseCharacterDataJson(characterDataJsonString);
var jsonArray = JArray.Parse(itemDropJsonString); var jsonArray = JArray.Parse(itemDropJsonString);
foreach (var element in jsonArray) foreach (var element in jsonArray)
{ {
var characterIdx = (int)element["CharacterIdx"]; var characterIdx = (string)element["CharacterIdx"];
var dropItem = new DropItem var dropItem = new DropItem
{ {
ItemIdx = (int)element["ItemIdx"], ItemIdx = (string)element["ItemIdx"],
DropRate = (int)element["DropRate"], DropRate = (int)element["DropRate"],
QuantityMin = (int)element["QuantityMin"], QuantityMin = (int)element["QuantityMin"],
QuantityMax = (int)element["QuantityMax"] QuantityMax = (int)element["QuantityMax"]
@ -71,14 +71,14 @@ namespace BlueWater.Items
return newItemDropTables; return newItemDropTables;
} }
private static Dictionary<int, string> ParseCharacterDataJson(string characterDataJsonString) private static Dictionary<string, string> ParseCharacterDataJson(string characterDataJsonString)
{ {
var characterDataDictionary = new Dictionary<int, string>(); var characterDataDictionary = new Dictionary<string, string>();
var jsonArray = JArray.Parse(characterDataJsonString); var jsonArray = JArray.Parse(characterDataJsonString);
foreach (var element in jsonArray) foreach (var element in jsonArray)
{ {
var characterIdx = (int)element["CharacterIdx"]; var characterIdx = (string)element["CharacterIdx"];
var name = (string)element["Name"]; var name = (string)element["Name"];
characterDataDictionary[characterIdx] = name; characterDataDictionary[characterIdx] = name;
} }

View File

@ -1,7 +1,9 @@
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
using Random = UnityEngine.Random;
namespace BlueWater.Items namespace BlueWater.Items
{ {
@ -12,15 +14,23 @@ namespace BlueWater.Items
[SerializeField, Required] [SerializeField, Required]
private ItemDataSo _itemDataSo; private ItemDataSo _itemDataSo;
private Dictionary<int, ItemData> _itemDataDictionary; private Dictionary<string, ItemData> _itemDatas;
[SerializeField, Required] [SerializeField, Required]
private ItemDropTableSo _itemDropTableSo; private ItemDropTableSo _itemDropTableSo;
private Dictionary<int, ItemDropTable> _itemDropTableDictionary; private Dictionary<string, ItemDropTable> _itemDropTables;
[SerializeField, Required] [SerializeField, Required]
private FoodDataSo _foodDataSo; private FoodDataSo _foodDataSo;
private Dictionary<int, FoodData> _foodDataDictionary; private Dictionary<string, FoodData> _foodDatas;
[SerializeField, Required]
private CocktailDataSo _cocktailDataSo;
private Dictionary<string, CocktailData> _cocktailDatas;
[SerializeField, Required]
private DrinkDataSo _drinkDataSo;
private Dictionary<string, DrinkData> _drinkDatas;
[field: SerializeField, Required] [field: SerializeField, Required]
public ItemSlotDataSo ItemSlotDataSo { get; private set; } public ItemSlotDataSo ItemSlotDataSo { get; private set; }
@ -43,26 +53,19 @@ namespace BlueWater.Items
private void Initialize() private void Initialize()
{ {
_itemDataDictionary = new Dictionary<int, ItemData>(_itemDataSo.ItemDataList.Count); _itemDatas = InitializeDictionary(_itemDataSo.Datas, data => data.Idx);
foreach (var element in _itemDataSo.ItemDataList) _itemDropTables = InitializeDictionary(_itemDropTableSo.ItemDropTables, table => table.CharacterData.CharacterIdx);
{ _foodDatas = InitializeDictionary(_foodDataSo.Datas, data => data.Idx);
_itemDataDictionary.TryAdd(element.Idx, element); _cocktailDatas = InitializeDictionary(_cocktailDataSo.Datas, data => data.Idx);
} _drinkDatas = InitializeDictionary(_drinkDataSo.Datas, data => data.Idx);
_itemDropTableDictionary = new Dictionary<int, ItemDropTable>(_itemDropTableSo.ItemDropTables.Count);
foreach (var element in _itemDropTableSo.ItemDropTables)
{
_itemDropTableDictionary.TryAdd(element.CharacterData.CharacterIdx, element);
}
_foodDataDictionary = new Dictionary<int, FoodData>(_foodDataSo.FoodDatas.Count);
foreach (var element in _foodDataSo.FoodDatas)
{
_foodDataDictionary.TryAdd(element.Idx, element);
}
} }
public void ItemDropRandomPosition(int idx, Vector3 dropPosition, float randomDropRadius = float.PositiveInfinity) 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)
{ {
var itemDropTable = GetItemDropTableByIdx(idx); var itemDropTable = GetItemDropTableByIdx(idx);
if (itemDropTable == null) return; if (itemDropTable == null) return;
@ -84,7 +87,7 @@ namespace BlueWater.Items
droppedPositions.Add(newDropPosition); droppedPositions.Add(newDropPosition);
var itemPrefab = _itemDataDictionary[element.Idx].ItemPrefab; var itemPrefab = _itemDatas[element.Idx].ItemPrefab;
if (!itemPrefab) if (!itemPrefab)
{ {
itemPrefab = _defaultItemPrefab; itemPrefab = _defaultItemPrefab;
@ -103,34 +106,33 @@ namespace BlueWater.Items
return positions.Any(pos => Vector3.Distance(position, pos) > _minSeparationDistance); return positions.Any(pos => Vector3.Distance(position, pos) > _minSeparationDistance);
} }
public ItemData GetItemDataByIdx(int idx) public T GetDataByIdx<T>(Dictionary<string, T> dataDictionary, string idx) where T : class
{ {
if (_itemDataDictionary.TryGetValue(idx, out var itemData)) return itemData; if (dataDictionary.TryGetValue(idx, out var data))
return data;
Debug.LogError($"{idx}와 일치하는 아이템이 없습니다."); Debug.LogError($"{idx}와 일치하는 아이템이 없습니다.");
return null; return null;
} }
public ItemDropTable GetItemDropTableByIdx(int idx) public ItemData GetItemDataByIdx(string idx) => GetDataByIdx(_itemDatas, idx);
public ItemDropTable GetItemDropTableByIdx(string idx)
{ {
if (idx == 0) if (string.IsNullOrEmpty(idx))
{ {
Debug.Log("ItemDropTable이 비어있습니다."); Debug.Log("ItemDropTable이 비어있습니다.");
return null; return null;
} }
if (_itemDropTableDictionary.TryGetValue(idx, out var itemDropTable)) return itemDropTable; if (_itemDropTables.TryGetValue(idx, out var itemDropTable)) return itemDropTable;
Debug.LogError($"{idx}와 일치하는 아이템이 없습니다."); Debug.LogError($"{idx}와 일치하는 아이템이 없습니다.");
return null; return null;
} }
public FoodData GetFoodDataByIdx(int idx) public FoodData GetFoodDataByIdx(string idx) => GetDataByIdx(_foodDatas, idx);
{ public CocktailData GetCocktailDataByIdx(string idx) => GetDataByIdx(_cocktailDatas, idx);
if (_foodDataDictionary.TryGetValue(idx, out var foodData)) return foodData; public DrinkData GetDrinkDataByIdx(string idx) => GetDataByIdx(_drinkDatas, idx);
Debug.LogError($"{idx}와 일치하는 아이템이 없습니다.");
return null;
}
} }
} }

View File

@ -7,7 +7,7 @@ namespace BlueWater.Items
public class ItemSlot public class ItemSlot
{ {
[field: SerializeField, Tooltip("아이템 인덱스")] [field: SerializeField, Tooltip("아이템 인덱스")]
public int Idx { get; private set; } public string Idx { get; private set; }
[field: SerializeField, Tooltip("아이템 수량")] [field: SerializeField, Tooltip("아이템 수량")]
public int Quantity { get; set; } public int Quantity { get; set; }
@ -15,7 +15,7 @@ namespace BlueWater.Items
[field: SerializeField, Tooltip("아이템 획득 시간")] [field: SerializeField, Tooltip("아이템 획득 시간")]
public long AcquisitionTime { get; set; } public long AcquisitionTime { get; set; }
public ItemSlot(int idx, int quantity) public ItemSlot(string idx, int quantity)
{ {
Idx = idx; Idx = idx;
Quantity = quantity; Quantity = quantity;

View File

@ -8,6 +8,9 @@ namespace BlueWater
[SerializeField] [SerializeField]
private SpriteRenderer _spriteRenderer; private SpriteRenderer _spriteRenderer;
[SerializeField]
private Rigidbody2D _rigidbody2D;
[SerializeField, Range(0f, 2f)] [SerializeField, Range(0f, 2f)]
private float _distanceThreshold = 0.5f; private float _distanceThreshold = 0.5f;
@ -18,11 +21,13 @@ namespace BlueWater
public void SetManagedPool(IObjectPool<Liquid> pool) => _managedPool = pool; public void SetManagedPool(IObjectPool<Liquid> pool) => _managedPool = pool;
public void Destroy() => _managedPool.Release(this); public void Destroy() => _managedPool.Release(this);
public void Initialize(LiquidController liquidController, Collider2D targetCollider, Color color) public void Initialize(LiquidController liquidController, Collider2D targetCollider, Color color, Vector3 pushForce)
{ {
_liquidController = liquidController; _liquidController = liquidController;
_targetCollider = targetCollider; _targetCollider = targetCollider;
_spriteRenderer.color = color; _spriteRenderer.color = color;
_rigidbody2D.linearVelocity = Vector2.zero;
_rigidbody2D.AddForce(pushForce, ForceMode2D.Impulse);
} }
private void Update() private void Update()

View File

@ -1,3 +1,4 @@
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
@ -8,15 +9,19 @@ namespace BlueWater
{ {
public class LiquidController : MonoBehaviour public class LiquidController : MonoBehaviour
{ {
#region Variables
[Title("컴포넌트")]
[SerializeField] [SerializeField]
private Renderer _renderTexture; private Renderer _renderTexture;
[SerializeField] [SerializeField]
private Renderer _liquidRenderer; private Renderer _liquidRenderer;
[SerializeField, Required] [SerializeField]
private Liquid _liquidObject; private Collider2D _reachedCollider;
[Title("스폰 데이터")]
[SerializeField, Required] [SerializeField, Required]
private Transform _spawnTransform; private Transform _spawnTransform;
@ -24,36 +29,57 @@ namespace BlueWater
private Transform _spawnLocation; private Transform _spawnLocation;
[SerializeField] [SerializeField]
private Collider2D _reachedCollider; private Vector3 _pushDirection;
[SerializeField] [SerializeField]
private float _pushPower;
[Title("액체")]
[SerializeField, Required, Tooltip("액체 프리팹")]
private Liquid _liquidObject;
[SerializeField, Tooltip("떨어지는 액체의 색상")]
private Color _liquidColor = new(1f, 0.8431373f, 0f, 1f);
[SerializeField, Tooltip("초당 생성되는 액체 수(ml)")]
private int _liquidsPerSecond = 80;
[SerializeField]
private int _maxLiquidCount = 400;
[SerializeField, Range(0f, 1f), Tooltip("목표 색상으로 변경되는데 걸리는 시간")]
private float _colorLerpSpeed = 0.5f;
[SerializeField, Range(1f, 5f), Tooltip("목표 색상 * 밝기")]
private float _colorIntensity = 2f;
[Title("오브젝트 풀링")]
[SerializeField, Tooltip("오브젝트 풀링 최대 개수")]
private int _objectPoolCount = 1000; private int _objectPoolCount = 1000;
[SerializeField]
private Color _liquidColor = new(0f, 0.7294118f, 1f, 1f);
[SerializeField, Tooltip("1초에 차는 %")]
private float _pouringRate = 20f;
[SerializeField]
private int _liquidsPerSecond = 100;
[SerializeField, Range(0f, 100f)]
private float _currentLiquidAmount;
private IObjectPool<Liquid> _objectPool; private IObjectPool<Liquid> _objectPool;
private List<Liquid> _activeLiquids = new(); private List<Liquid> _activeLiquids = new();
private Dictionary<Color, float> _colorTimes = new(); private Dictionary<Color, int> _colorCounts = new();
private Material _instanceMaterial; private Material _instanceMaterial;
private bool _isPouring; private bool _isPouring;
private float _startTime = float.PositiveInfinity; private float _startTime = float.PositiveInfinity;
private int _instanceLiquidCount;
private float _currentLiquidAmount;
private float _liquidReachedTime;
private float _timeInterval; private float _timeInterval;
private float _liquidPerObject; private Color _currentMixedColor = Color.black;
private Color _targetColor;
// Hashes // Hashes
private static readonly int _liquidAmountHash = Shader.PropertyToID("_LiquidAmount"); private static readonly int _liquidAmountHash = Shader.PropertyToID("_LiquidAmount");
private static readonly int _liquidColorHash = Shader.PropertyToID("_LiquidColor"); private static readonly int _liquidColorHash = Shader.PropertyToID("_LiquidColor");
private static readonly int _renderTextureColorHash = Shader.PropertyToID("_Color");
#endregion
// Unity events
#region Unity events
private void Awake() private void Awake()
{ {
@ -62,11 +88,13 @@ namespace BlueWater
private void Start() private void Start()
{ {
TycoonEvents.OnDrinkUiOpened += Initialize;
TycoonEvents.OnDrinkUiClosed += ReleaseAllObject;
_instanceMaterial = Instantiate(_liquidRenderer.material); _instanceMaterial = Instantiate(_liquidRenderer.material);
_liquidRenderer.material = _instanceMaterial; _liquidRenderer.material = _instanceMaterial;
_timeInterval = 1f / _liquidsPerSecond; _timeInterval = 1f / _liquidsPerSecond;
_liquidPerObject = _pouringRate / _liquidsPerSecond;
_instanceMaterial.SetFloat(_liquidAmountHash, 0f); _instanceMaterial.SetFloat(_liquidAmountHash, 0f);
} }
@ -74,7 +102,7 @@ namespace BlueWater
{ {
if (_isPouring) if (_isPouring)
{ {
if (_currentLiquidAmount >= 100f) if (_instanceLiquidCount >= _maxLiquidCount)
{ {
InActiveIsPouring(); InActiveIsPouring();
return; return;
@ -84,25 +112,50 @@ namespace BlueWater
{ {
_objectPool.Get(); _objectPool.Get();
if (_colorTimes.ContainsKey(_liquidColor)) if (!_colorCounts.TryAdd(_liquidColor, 1))
{ {
_colorTimes[_liquidColor] += _timeInterval; _colorCounts[_liquidColor] += 1;
}
else
{
_colorTimes[_liquidColor] = _timeInterval;
} }
_startTime = Time.time; _startTime = Time.time;
} }
} }
if (_liquidReachedTime + _colorLerpSpeed >= Time.time)
{
_currentMixedColor = Color.Lerp(_currentMixedColor, _targetColor, _colorLerpSpeed * Time.deltaTime);
_instanceMaterial.SetColor(_liquidColorHash, _currentMixedColor * _colorIntensity);
}
} }
private void OnDestroy()
{
TycoonEvents.OnDrinkUiOpened -= Initialize;
TycoonEvents.OnDrinkUiClosed -= ReleaseAllObject;
}
#endregion
// Initialize methods
#region Initialize methods
public void Initialize()
{
_instanceLiquidCount = 0;
_currentLiquidAmount = 0f;
_currentMixedColor = _liquidColor;
_instanceMaterial.SetColor(_liquidColorHash, _currentMixedColor * _colorIntensity);
}
#endregion
// Object pooling system
#region Object pooling system
private Liquid CreateObject() private Liquid CreateObject()
{ {
var instance = Instantiate(_liquidObject, _spawnTransform.position, Quaternion.identity, _spawnLocation); var instance = Instantiate(_liquidObject, _spawnTransform.position, Quaternion.identity, _spawnLocation);
instance.SetManagedPool(_objectPool); instance.SetManagedPool(_objectPool);
instance.Initialize(this, _reachedCollider, _liquidColor);
return instance; return instance;
} }
@ -110,12 +163,13 @@ namespace BlueWater
{ {
liquid.transform.position = _spawnTransform.position; liquid.transform.position = _spawnTransform.position;
liquid.transform.rotation = Quaternion.identity; liquid.transform.rotation = Quaternion.identity;
liquid.Initialize(this, _reachedCollider, _liquidColor);
if (_renderTexture && _renderTexture.material.GetColor("_Color") != _liquidColor)
{
_renderTexture.material.SetColor("_Color", _liquidColor);
}
liquid.gameObject.SetActive(true); liquid.gameObject.SetActive(true);
_instanceLiquidCount++;
liquid.Initialize(this, _reachedCollider, _liquidColor, _pushDirection.normalized * _pushPower);
if (_renderTexture && _renderTexture.material.GetColor(_renderTextureColorHash) != _liquidColor)
{
_renderTexture.material.SetColor(_renderTextureColorHash, _liquidColor);
}
_activeLiquids.Add(liquid); _activeLiquids.Add(liquid);
} }
@ -131,40 +185,27 @@ namespace BlueWater
_activeLiquids.Remove(liquid); _activeLiquids.Remove(liquid);
} }
private Color MixColorsByTime() #endregion
{
var totalTime = _colorTimes.Values.Sum();
// 혼합된 색상 초기화 (검은색) // Custom methods
var mixedColor = Color.black; #region Custom methods
// 색상 혼합
foreach (var element in _colorTimes)
{
var color = element.Key;
var time = element.Value;
var ratio = time / totalTime;
mixedColor += color * ratio;
}
mixedColor.a = 1f;
return mixedColor;
}
[Button("기본 색상")] [Button("기본 색상")]
private void DefaultColor() => _liquidColor = new Color(0f, 0.7294118f, 1f, 1f); private void DefaultColor() => _liquidColor = new Color(1f, 0.8431373f, 0f, 1f);
/// <summary>
/// 술 제조 과정 초기화 함수
/// </summary>
public void ReleaseAllObject() public void ReleaseAllObject()
{ {
// 뒤에서부터 Remove해야 오류가 없음 // 리스트 삭제는 뒤에서부터 해야 오류가 없음
for (var i = _activeLiquids.Count - 1; i >= 0; i--) for (var i = _activeLiquids.Count - 1; i >= 0; i--)
{ {
_activeLiquids[i].Destroy(); _activeLiquids[i].Destroy();
} }
_colorTimes.Clear(); _colorCounts.Clear();
_instanceLiquidCount = 0;
_currentLiquidAmount = 0f; _currentLiquidAmount = 0f;
_instanceMaterial.SetFloat(_liquidAmountHash, 0f); _instanceMaterial.SetFloat(_liquidAmountHash, 0f);
} }
@ -180,20 +221,48 @@ namespace BlueWater
_isPouring = false; _isPouring = false;
} }
/// <summary>
/// 사용된 색상의 비율에 맞게 색을 혼합시키는 함수
/// </summary>
private Color MixColorsByTime()
{
var totalCounts = _colorCounts.Values.Sum();
var mixedColor = Color.black;
foreach (var element in _colorCounts)
{
var color = element.Key;
var count = element.Value;
var ratio = count / (float)totalCounts;
mixedColor += color * ratio;
}
mixedColor.a = 1f;
return mixedColor;
}
/// <summary>
/// 액체가 특정 오브젝트에 충돌했을 때, 실행해야하는 과정
/// </summary>
public void OnLiquidReached() public void OnLiquidReached()
{ {
// 컵에 채워진 액체의 양을 증가시킴 _liquidReachedTime = Time.time;
_currentLiquidAmount += _liquidPerObject; _currentLiquidAmount++;
_currentLiquidAmount = Mathf.Clamp(_currentLiquidAmount, 0f, 100f); var liquidAmount = Mathf.Clamp(_currentLiquidAmount / _maxLiquidCount, 0f, 1f);
var liquidAmount = _currentLiquidAmount * 0.01f;
_instanceMaterial.SetFloat(_liquidAmountHash, liquidAmount); _instanceMaterial.SetFloat(_liquidAmountHash, liquidAmount);
_instanceMaterial.SetColor(_liquidColorHash, MixColorsByTime()); _targetColor = MixColorsByTime();
// 액체가 100%에 도달하면 pouring을 멈춤 if (liquidAmount >= 1f)
if (_currentLiquidAmount >= 100f)
{ {
InActiveIsPouring(); InActiveIsPouring();
} }
} }
#endregion
} }
} }

View File

@ -46,7 +46,8 @@ namespace BlueWater.Maps
private IEnumerator PortalCoroutine(Collider other) private IEnumerator PortalCoroutine(Collider other)
{ {
PlayerInputKeyManager.Instance.DisableCurrentPlayerInput(); PlayerInputKeyManager.Instance.DisableCurrentPlayerInput();
CombatUiManager.Instance.FadeInOut(_fadeInOutTime.x, _fadeInOutTime.y, _fadeColor, _delayAfterFadeIn); GlobalEvents.FadeInOut?.Invoke(_fadeInOutTime.x, _fadeInOutTime.y, _fadeColor, _delayAfterFadeIn);
//CombatUiManager.Instance.FadeInOut(_fadeInOutTime.x, _fadeInOutTime.y, _fadeColor, _delayAfterFadeIn);
yield return new WaitForSeconds(_fadeInOutTime.x); yield return new WaitForSeconds(_fadeInOutTime.x);
other.transform.position = _targetTransform.position; other.transform.position = _targetTransform.position;

View File

@ -10,7 +10,7 @@ namespace BlueWater
{ {
[Title("드롭 아이템")] [Title("드롭 아이템")]
[SerializeField] [SerializeField]
protected int CharacterIdx; protected string CharacterIdx;
[field: Title("체력")] [field: Title("체력")]
[field: SerializeField] [field: SerializeField]
@ -81,7 +81,7 @@ namespace BlueWater
dieParticleInstance.Play(); dieParticleInstance.Play();
} }
if (CharacterIdx != 0) if (!string.IsNullOrEmpty(CharacterIdx))
{ {
ItemManager.Instance.ItemDropRandomPosition(CharacterIdx, transform.position, 0f); ItemManager.Instance.ItemDropRandomPosition(CharacterIdx, transform.position, 0f);
} }

View File

@ -62,7 +62,7 @@ namespace BlueWater
_spineController.PlayAnimation(_dieAnimationName, false); _spineController.PlayAnimation(_dieAnimationName, false);
if (CharacterIdx != 0) if (!string.IsNullOrEmpty(CharacterIdx))
{ {
ItemManager.Instance.ItemDropRandomPosition(CharacterIdx, transform.position, 0f); ItemManager.Instance.ItemDropRandomPosition(CharacterIdx, transform.position, 0f);
} }

View File

@ -1,3 +1,4 @@
using BlueWater.Uis;
using UnityEngine; using UnityEngine;
namespace BlueWater.Tycoons namespace BlueWater.Tycoons
@ -7,39 +8,19 @@ namespace BlueWater.Tycoons
[SerializeField] [SerializeField]
private LiquidController _liquidController; private LiquidController _liquidController;
[SerializeField]
private LiquidController _liquidController2;
// protected override void Awake()
// {
// base.Awake();
//
// _liquidController = FindAnyObjectByType<LiquidController>();
// }
public override void Interaction() public override void Interaction()
{ {
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Bar); TycoonUiManager.Instance.DrinkUi.Open(TycoonUiManager.Instance.PopupUiList);
TycoonCameraManager.Instance.SetMainCamera(TycoonCameraType.Bar);
}
public void Escape()
{
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
TycoonCameraManager.Instance.SetMainCamera(TycoonCameraType.Base);
_liquidController.ReleaseAllObject();
} }
public void ActiveIsPouring() public void ActiveIsPouring()
{ {
_liquidController.ActiveIsPouring(); _liquidController.ActiveIsPouring();
_liquidController2.ActiveIsPouring();
} }
public void InActiveIsPouring() public void InActiveIsPouring()
{ {
_liquidController.InActiveIsPouring(); _liquidController.InActiveIsPouring();
_liquidController2.InActiveIsPouring();
} }
} }
} }

View File

@ -5,7 +5,7 @@ namespace BlueWater.Tycoons
public class BeverageMachine : InteractionFurniture public class BeverageMachine : InteractionFurniture
{ {
[SerializeField] [SerializeField]
private int _itemIdx = 40001; private string _itemIdx = "40001";
public override void Interaction() public override void Interaction()
{ {

View File

@ -0,0 +1,46 @@
using BlueWater.Items;
using BlueWater.Uis;
using UnityEngine;
namespace BlueWater.Tycoons
{
public class Brewing : InteractionFurniture
{
[SerializeField]
private DrinkCategory _category;
[SerializeField]
private DrinkData _currentDrinkData;
[SerializeField]
private int _currentQuantity;
public override void Interaction()
{
var brewingUi = TycoonUiManager.Instance.BrewingUi;
brewingUi.SetBrewing(this);
brewingUi.Open(TycoonUiManager.Instance.PopupUiList);
}
public override bool CanInteraction()
{
return !IsOpened;
}
public void SetDrink(DrinkData drinkData)
{
_currentDrinkData = drinkData;
_currentQuantity = _currentDrinkData.Amount;
}
public bool IsEmptyDrink()
{
return _currentDrinkData == null || _currentQuantity <= 0;
}
public DrinkCategory GetDrinkCategory()
{
return _category;
}
}
}

View File

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

View File

@ -35,7 +35,7 @@ namespace BlueWater.Tycoons
[FormerlySerializedAs("_fireWoodIdx")] [FormerlySerializedAs("_fireWoodIdx")]
[SerializeField, BoxGroup("데이터")] [SerializeField, BoxGroup("데이터")]
protected int FireWoodIdx = 70001; protected string FireWoodIdx = "70001";
private Queue<FoodData> _cookedFoodDatas; private Queue<FoodData> _cookedFoodDatas;
private int _currentFireWoodCount; private int _currentFireWoodCount;
@ -59,7 +59,7 @@ namespace BlueWater.Tycoons
private void Update() private void Update()
{ {
if (!IsOpened || CurrentDailyFoodUi.FoodData is null or { Idx : 0 }) return; if (!IsOpened || CurrentDailyFoodUi.FoodData == null || string.IsNullOrEmpty(CurrentDailyFoodUi.FoodData.Idx)) return;
var level = _currentFireWoodCount / 5; var level = _currentFireWoodCount / 5;
var currentFireWoodLevel = CookwareDataSo.FireWoodLevel[level]; var currentFireWoodLevel = CookwareDataSo.FireWoodLevel[level];
@ -160,7 +160,7 @@ namespace BlueWater.Tycoons
protected override void OpenTycoonSwitch() protected override void OpenTycoonSwitch()
{ {
if (CurrentDailyFoodUi.FoodData is not null and not { Idx : 0 }) if (CurrentDailyFoodUi.FoodData != null && !string.IsNullOrEmpty(CurrentDailyFoodUi.FoodData.Idx))
{ {
CookGauge.enabled = true; CookGauge.enabled = true;
FireWoodQuantity.enabled = true; FireWoodQuantity.enabled = true;

View File

@ -5,7 +5,7 @@ namespace BlueWater.Tycoons
public class FireWood : InteractionFurniture public class FireWood : InteractionFurniture
{ {
[SerializeField] [SerializeField]
private int _itemIdx = 70001; private string _itemIdx = "70001";
public override void Interaction() public override void Interaction()
{ {

View File

@ -0,0 +1,155 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 03802f3276c69a348aaa2515377b47cc, type: 3}
m_Name: CocktailDataTable
m_EditorClassIdentifier:
<Datas>k__BackingField:
- <Idx>k__BackingField: Cocktail300
<Name>k__BackingField: "\uB2EC\uBE5B \uC0D8\uBB3C"
<RatioRange>k__BackingField: 0
<IngredientIdx1>k__BackingField: Drink100
<IngredientRatio1>k__BackingField: 100
<IngredientIdx2>k__BackingField:
<IngredientRatio2>k__BackingField: 0
<IngredientIdx3>k__BackingField:
<IngredientRatio3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientRatio4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientRatio5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Cocktail301
<Name>k__BackingField: "\uB9DD\uB839 \uB9E5\uC8FC"
<RatioRange>k__BackingField: 0
<IngredientIdx1>k__BackingField: Drink101
<IngredientRatio1>k__BackingField: 100
<IngredientIdx2>k__BackingField:
<IngredientRatio2>k__BackingField: 0
<IngredientIdx3>k__BackingField:
<IngredientRatio3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientRatio4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientRatio5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Cocktail302
<Name>k__BackingField: "\uAC80\uC740 \uC218\uC5FC"
<RatioRange>k__BackingField: 0
<IngredientIdx1>k__BackingField: Drink102
<IngredientRatio1>k__BackingField: 100
<IngredientIdx2>k__BackingField:
<IngredientRatio2>k__BackingField: 0
<IngredientIdx3>k__BackingField:
<IngredientRatio3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientRatio4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientRatio5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Cocktail303
<Name>k__BackingField: "\uC6A9\uC554 \uB9E5\uC8FC"
<RatioRange>k__BackingField: 0
<IngredientIdx1>k__BackingField: Drink103
<IngredientRatio1>k__BackingField: 100
<IngredientIdx2>k__BackingField:
<IngredientRatio2>k__BackingField: 0
<IngredientIdx3>k__BackingField:
<IngredientRatio3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientRatio4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientRatio5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Cocktail304
<Name>k__BackingField: "\uC8FD\uC74C\uC758 \uC774\uC2AC"
<RatioRange>k__BackingField: 0
<IngredientIdx1>k__BackingField: Drink104
<IngredientRatio1>k__BackingField: 100
<IngredientIdx2>k__BackingField:
<IngredientRatio2>k__BackingField: 0
<IngredientIdx3>k__BackingField:
<IngredientRatio3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientRatio4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientRatio5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Cocktail305
<Name>k__BackingField: "\uC5BC\uC74C"
<RatioRange>k__BackingField: 0
<IngredientIdx1>k__BackingField: Ice200
<IngredientRatio1>k__BackingField: 100
<IngredientIdx2>k__BackingField:
<IngredientRatio2>k__BackingField: 0
<IngredientIdx3>k__BackingField:
<IngredientRatio3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientRatio4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientRatio5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Cocktail306
<Name>k__BackingField: "\uC5BC\uC5B4\uBD99\uC740 \uB9DD\uB839"
<RatioRange>k__BackingField: 10
<IngredientIdx1>k__BackingField: Drink101
<IngredientRatio1>k__BackingField: 80
<IngredientIdx2>k__BackingField: Ice200
<IngredientRatio2>k__BackingField: 20
<IngredientIdx3>k__BackingField:
<IngredientRatio3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientRatio4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientRatio5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Cocktail307
<Name>k__BackingField: "\uC2AC\uB77C\uC784 \uD480"
<RatioRange>k__BackingField: 25
<IngredientIdx1>k__BackingField: Drink100
<IngredientRatio1>k__BackingField: 50
<IngredientIdx2>k__BackingField: Ice200
<IngredientRatio2>k__BackingField: 50
<IngredientIdx3>k__BackingField:
<IngredientRatio3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientRatio4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientRatio5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Cocktail308
<Name>k__BackingField: "\uBD88\uD0C4 \uC218\uC5FC"
<RatioRange>k__BackingField: 10
<IngredientIdx1>k__BackingField: Drink102
<IngredientRatio1>k__BackingField: 20
<IngredientIdx2>k__BackingField: Drink103
<IngredientRatio2>k__BackingField: 80
<IngredientIdx3>k__BackingField:
<IngredientRatio3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientRatio4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientRatio5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Cocktail309
<Name>k__BackingField: "\uB77C\uBC14 \uACE0\uC2A4\uD2B8"
<RatioRange>k__BackingField: 15
<IngredientIdx1>k__BackingField: Drink101
<IngredientRatio1>k__BackingField: 50
<IngredientIdx2>k__BackingField: Drink103
<IngredientRatio2>k__BackingField: 50
<IngredientIdx3>k__BackingField:
<IngredientRatio3>k__BackingField: 0
<IngredientIdx4>k__BackingField:
<IngredientRatio4>k__BackingField: 0
<IngredientIdx5>k__BackingField:
<IngredientRatio5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b28d3497d1f428046bc82469f2056bac
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,111 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1f91e197a0d142b40ae1ec8bd1300fb3, type: 3}
m_Name: DrinkDataTable
m_EditorClassIdentifier:
<Datas>k__BackingField:
- <Idx>k__BackingField: Drink100
<Name>k__BackingField: "\uB2EC\uBE5B \uC0D8\uBB3C"
<Category>k__BackingField: 1
<Amount>k__BackingField: 99999
<AlcoholVolume>k__BackingField: 0
<CoolWarm>k__BackingField: 10
<BitterSweet>k__BackingField: 0
<Scent>k__BackingField: 0
<IngredientIdx1>k__BackingField: 0
<IngredientQuantity1>k__BackingField: 0
<IngredientIdx2>k__BackingField: 0
<IngredientQuantity2>k__BackingField: 0
<IngredientIdx3>k__BackingField: 0
<IngredientQuantity3>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
- <Idx>k__BackingField: Drink101
<Name>k__BackingField: "\uB9DD\uB839 \uB9E5\uC8FC"
<Category>k__BackingField: 1
<Amount>k__BackingField: 2000
<AlcoholVolume>k__BackingField: 7
<CoolWarm>k__BackingField: -20
<BitterSweet>k__BackingField: -10
<Scent>k__BackingField: 0
<IngredientIdx1>k__BackingField: Item00
<IngredientQuantity1>k__BackingField: 2
<IngredientIdx2>k__BackingField: 0
<IngredientQuantity2>k__BackingField: 0
<IngredientIdx3>k__BackingField: 0
<IngredientQuantity3>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
- <Idx>k__BackingField: Drink102
<Name>k__BackingField: "\uAC80\uC740 \uC218\uC5FC \uB7FC"
<Category>k__BackingField: 1
<Amount>k__BackingField: 1200
<AlcoholVolume>k__BackingField: 20
<CoolWarm>k__BackingField: -30
<BitterSweet>k__BackingField: -15
<Scent>k__BackingField: 0
<IngredientIdx1>k__BackingField: Item01
<IngredientQuantity1>k__BackingField: 3
<IngredientIdx2>k__BackingField: Item00
<IngredientQuantity2>k__BackingField: 1
<IngredientIdx3>k__BackingField: 0
<IngredientQuantity3>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
- <Idx>k__BackingField: Drink103
<Name>k__BackingField: "\uC6A9\uC554 \uB9E5\uC8FC"
<Category>k__BackingField: 1
<Amount>k__BackingField: 2800
<AlcoholVolume>k__BackingField: 6
<CoolWarm>k__BackingField: 20
<BitterSweet>k__BackingField: 10
<Scent>k__BackingField: 0
<IngredientIdx1>k__BackingField: Item02
<IngredientQuantity1>k__BackingField: 1
<IngredientIdx2>k__BackingField: Item03
<IngredientQuantity2>k__BackingField: 3
<IngredientIdx3>k__BackingField: 0
<IngredientQuantity3>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
- <Idx>k__BackingField: Drink104
<Name>k__BackingField: "\uC8FD\uC74C\uC758 \uC774\uC2AC"
<Category>k__BackingField: 1
<Amount>k__BackingField: 800
<AlcoholVolume>k__BackingField: 30
<CoolWarm>k__BackingField: -25
<BitterSweet>k__BackingField: 20
<Scent>k__BackingField: 0
<IngredientIdx1>k__BackingField: Item04
<IngredientQuantity1>k__BackingField: 2
<IngredientIdx2>k__BackingField: 0
<IngredientQuantity2>k__BackingField: 0
<IngredientIdx3>k__BackingField: 0
<IngredientQuantity3>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
- <Idx>k__BackingField: Ice200
<Name>k__BackingField: "\uC5BC\uC74C \uC2AC\uB77C\uC784\uC758 \uC870\uAC01"
<Category>k__BackingField: 2
<Amount>k__BackingField: 1000
<AlcoholVolume>k__BackingField: 0
<CoolWarm>k__BackingField: -20
<BitterSweet>k__BackingField: 0
<Scent>k__BackingField: 0
<IngredientIdx1>k__BackingField: Item05
<IngredientQuantity1>k__BackingField: 2
<IngredientIdx2>k__BackingField: 0
<IngredientQuantity2>k__BackingField: 0
<IngredientIdx3>k__BackingField: 0
<IngredientQuantity3>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 24a7d2ebd11ba314684a6d3ef72f76a0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -12,7 +12,7 @@ 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:
<FoodDatas>k__BackingField: <Datas>k__BackingField:
- <Idx>k__BackingField: 30001 - <Idx>k__BackingField: 30001
<Name>k__BackingField: "\uC2AC\uB77C\uC784 \uD478\uB529" <Name>k__BackingField: "\uC2AC\uB77C\uC784 \uD478\uB529"
<Type>k__BackingField: 4 <Type>k__BackingField: 4
@ -23,11 +23,11 @@ MonoBehaviour:
<IngredientQuantity1>k__BackingField: 1 <IngredientQuantity1>k__BackingField: 1
<IngredientIdx2>k__BackingField: 10706 <IngredientIdx2>k__BackingField: 10706
<IngredientQuantity2>k__BackingField: 1 <IngredientQuantity2>k__BackingField: 1
<IngredientIdx3>k__BackingField: 0 <IngredientIdx3>k__BackingField:
<IngredientQuantity3>k__BackingField: 0 <IngredientQuantity3>k__BackingField: 0
<IngredientIdx4>k__BackingField: 0 <IngredientIdx4>k__BackingField:
<IngredientQuantity4>k__BackingField: 0 <IngredientQuantity4>k__BackingField: 0
<IngredientIdx5>k__BackingField: 0 <IngredientIdx5>k__BackingField:
<IngredientQuantity5>k__BackingField: 0 <IngredientQuantity5>k__BackingField: 0
- <Idx>k__BackingField: 30002 - <Idx>k__BackingField: 30002
<Name>k__BackingField: "\uC5BC\uC74C\uB3C4\uCE58 \uD325\uBE59\uC218" <Name>k__BackingField: "\uC5BC\uC74C\uB3C4\uCE58 \uD325\uBE59\uC218"
@ -39,11 +39,11 @@ MonoBehaviour:
<IngredientQuantity1>k__BackingField: 1 <IngredientQuantity1>k__BackingField: 1
<IngredientIdx2>k__BackingField: 10706 <IngredientIdx2>k__BackingField: 10706
<IngredientQuantity2>k__BackingField: 1 <IngredientQuantity2>k__BackingField: 1
<IngredientIdx3>k__BackingField: 0 <IngredientIdx3>k__BackingField:
<IngredientQuantity3>k__BackingField: 0 <IngredientQuantity3>k__BackingField: 0
<IngredientIdx4>k__BackingField: 0 <IngredientIdx4>k__BackingField:
<IngredientQuantity4>k__BackingField: 0 <IngredientQuantity4>k__BackingField: 0
<IngredientIdx5>k__BackingField: 0 <IngredientIdx5>k__BackingField:
<IngredientQuantity5>k__BackingField: 0 <IngredientQuantity5>k__BackingField: 0
- <Idx>k__BackingField: 30003 - <Idx>k__BackingField: 30003
<Name>k__BackingField: "\uCF54\uBFD4\uC18C \uBFD4 \uD280\uAE40" <Name>k__BackingField: "\uCF54\uBFD4\uC18C \uBFD4 \uD280\uAE40"
@ -57,9 +57,9 @@ MonoBehaviour:
<IngredientQuantity2>k__BackingField: 1 <IngredientQuantity2>k__BackingField: 1
<IngredientIdx3>k__BackingField: 10704 <IngredientIdx3>k__BackingField: 10704
<IngredientQuantity3>k__BackingField: 1 <IngredientQuantity3>k__BackingField: 1
<IngredientIdx4>k__BackingField: 0 <IngredientIdx4>k__BackingField:
<IngredientQuantity4>k__BackingField: 0 <IngredientQuantity4>k__BackingField: 0
<IngredientIdx5>k__BackingField: 0 <IngredientIdx5>k__BackingField:
<IngredientQuantity5>k__BackingField: 0 <IngredientQuantity5>k__BackingField: 0
- <Idx>k__BackingField: 30004 - <Idx>k__BackingField: 30004
<Name>k__BackingField: "\uCF54\uBFD4\uC18C \uB4B7\uB2E4\uB9AC \uACE0\uAE30" <Name>k__BackingField: "\uCF54\uBFD4\uC18C \uB4B7\uB2E4\uB9AC \uACE0\uAE30"
@ -73,9 +73,9 @@ MonoBehaviour:
<IngredientQuantity2>k__BackingField: 1 <IngredientQuantity2>k__BackingField: 1
<IngredientIdx3>k__BackingField: 10701 <IngredientIdx3>k__BackingField: 10701
<IngredientQuantity3>k__BackingField: 1 <IngredientQuantity3>k__BackingField: 1
<IngredientIdx4>k__BackingField: 0 <IngredientIdx4>k__BackingField:
<IngredientQuantity4>k__BackingField: 0 <IngredientQuantity4>k__BackingField: 0
<IngredientIdx5>k__BackingField: 0 <IngredientIdx5>k__BackingField:
<IngredientQuantity5>k__BackingField: 0 <IngredientQuantity5>k__BackingField: 0
- <Idx>k__BackingField: 30005 - <Idx>k__BackingField: 30005
<Name>k__BackingField: "\uBC31\uC0C1\uC5B4 \uD1B5\uAD6C\uC774" <Name>k__BackingField: "\uBC31\uC0C1\uC5B4 \uD1B5\uAD6C\uC774"
@ -91,7 +91,7 @@ MonoBehaviour:
<IngredientQuantity3>k__BackingField: 1 <IngredientQuantity3>k__BackingField: 1
<IngredientIdx4>k__BackingField: 10704 <IngredientIdx4>k__BackingField: 10704
<IngredientQuantity4>k__BackingField: 1 <IngredientQuantity4>k__BackingField: 1
<IngredientIdx5>k__BackingField: 0 <IngredientIdx5>k__BackingField:
<IngredientQuantity5>k__BackingField: 0 <IngredientQuantity5>k__BackingField: 0
- <Idx>k__BackingField: 30006 - <Idx>k__BackingField: 30006
<Name>k__BackingField: "\uBC84\uD130 \uC870\uAC1C \uAD6C\uC774" <Name>k__BackingField: "\uBC84\uD130 \uC870\uAC1C \uAD6C\uC774"
@ -105,7 +105,7 @@ MonoBehaviour:
<IngredientQuantity2>k__BackingField: 1 <IngredientQuantity2>k__BackingField: 1
<IngredientIdx3>k__BackingField: 10705 <IngredientIdx3>k__BackingField: 10705
<IngredientQuantity3>k__BackingField: 1 <IngredientQuantity3>k__BackingField: 1
<IngredientIdx4>k__BackingField: 0 <IngredientIdx4>k__BackingField:
<IngredientQuantity4>k__BackingField: 0 <IngredientQuantity4>k__BackingField: 0
<IngredientIdx5>k__BackingField: 0 <IngredientIdx5>k__BackingField:
<IngredientQuantity5>k__BackingField: 0 <IngredientQuantity5>k__BackingField: 0

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f7fe40513dd0a794689cc8a52ddb2f87, type: 3} m_Script: {fileID: 11500000, guid: f7fe40513dd0a794689cc8a52ddb2f87, type: 3}
m_Name: ItemDataTable m_Name: ItemDataTable
m_EditorClassIdentifier: m_EditorClassIdentifier:
<ItemDataList>k__BackingField: <Datas>k__BackingField:
- <Idx>k__BackingField: 10101 - <Idx>k__BackingField: 10101
<Name>k__BackingField: "\uD0B9\uD06C\uB7A9" <Name>k__BackingField: "\uD0B9\uD06C\uB7A9"
<Type>k__BackingField: 1 <Type>k__BackingField: 1
@ -81,7 +81,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: -249642080, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10108 - <Idx>k__BackingField: 10108
<Name>k__BackingField: "\uC2AC\uB77C\uC784 \uCC0C\uAC70\uAE30" <Name>k__BackingField: "\uC2AC\uB77C\uC784 \uCC0C\uAC70\uAE30"
@ -91,7 +91,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 517031ef7cb81d848a246b47006cc498, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10109 - <Idx>k__BackingField: 10109
<Name>k__BackingField: "\uC5BC\uC74C \uAC00\uC2DC" <Name>k__BackingField: "\uC5BC\uC74C \uAC00\uC2DC"
@ -101,7 +101,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: cd0b57bb346bc2f45a42fdc2fdf9e398, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10201 - <Idx>k__BackingField: 10201
<Name>k__BackingField: "\uBC31\uC0C1\uC5B4" <Name>k__BackingField: "\uBC31\uC0C1\uC5B4"
@ -111,7 +111,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 83ba6a22503f6834ab2cd6e9e881a9fd, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10202 - <Idx>k__BackingField: 10202
<Name>k__BackingField: "\uB2C8\uBAA8" <Name>k__BackingField: "\uB2C8\uBAA8"
@ -191,7 +191,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 472129669, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10403 - <Idx>k__BackingField: 10403
<Name>k__BackingField: "\uC0AC\uACFC" <Name>k__BackingField: "\uC0AC\uACFC"
@ -201,7 +201,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: -55580973, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10404 - <Idx>k__BackingField: 10404
<Name>k__BackingField: "\uB808\uBAAC" <Name>k__BackingField: "\uB808\uBAAC"
@ -211,7 +211,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: -1272800058, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10501 - <Idx>k__BackingField: 10501
<Name>k__BackingField: "\uB9C8\uB298" <Name>k__BackingField: "\uB9C8\uB298"
@ -231,7 +231,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 1687559360, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10503 - <Idx>k__BackingField: 10503
<Name>k__BackingField: "\uB300\uD30C" <Name>k__BackingField: "\uB300\uD30C"
@ -241,7 +241,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: c99299b384d0fb147ba287c14bca05f7, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10504 - <Idx>k__BackingField: 10504
<Name>k__BackingField: "\uD30C\uC2AC\uB9AC" <Name>k__BackingField: "\uD30C\uC2AC\uB9AC"
@ -271,7 +271,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 8630b1c884d84ad4db92660bd1fbff25, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10507 - <Idx>k__BackingField: 10507
<Name>k__BackingField: "\uBC30\uCD94" <Name>k__BackingField: "\uBC30\uCD94"
@ -281,7 +281,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: -224896251, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10508 - <Idx>k__BackingField: 10508
<Name>k__BackingField: "\uBE0C\uB85C\uCF5C\uB9AC" <Name>k__BackingField: "\uBE0C\uB85C\uCF5C\uB9AC"
@ -291,7 +291,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: daecfc8f8ea7e3f4c93ba7d71c566bf9, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10509 - <Idx>k__BackingField: 10509
<Name>k__BackingField: "\uAE7B\uC78E" <Name>k__BackingField: "\uAE7B\uC78E"
@ -331,7 +331,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: d9bedb12956adb14283ae6bc1287fd9e, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10701 - <Idx>k__BackingField: 10701
<Name>k__BackingField: "\uC18C\uAE08" <Name>k__BackingField: "\uC18C\uAE08"
@ -341,7 +341,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 1089943196, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10702 - <Idx>k__BackingField: 10702
<Name>k__BackingField: "\uACE0\uCDA7\uAC00\uB8E8" <Name>k__BackingField: "\uACE0\uCDA7\uAC00\uB8E8"
@ -361,7 +361,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 910fd09388091a24abfc27d2ca0806bb, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10704 - <Idx>k__BackingField: 10704
<Name>k__BackingField: "\uAC04\uC7A5" <Name>k__BackingField: "\uAC04\uC7A5"
@ -371,7 +371,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 24e97b05d9cfdb548adb59f5fe266289, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10705 - <Idx>k__BackingField: 10705
<Name>k__BackingField: "\uBC84\uD130" <Name>k__BackingField: "\uBC84\uD130"
@ -381,7 +381,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 96e97973084d87e4bbeef865b3040c34, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 10706 - <Idx>k__BackingField: 10706
<Name>k__BackingField: "\uC124\uD0D5" <Name>k__BackingField: "\uC124\uD0D5"
@ -391,7 +391,7 @@ MonoBehaviour:
<Price>k__BackingField: 100 <Price>k__BackingField: 100
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: e841bb6ae64327c43a6b26d5d8ca0a90, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 20001 - <Idx>k__BackingField: 20001
<Name>k__BackingField: "\uBCF4\uBB3C \uC0C1\uC790 (\uB3D9)" <Name>k__BackingField: "\uBCF4\uBB3C \uC0C1\uC790 (\uB3D9)"
@ -441,7 +441,7 @@ MonoBehaviour:
<Price>k__BackingField: 500 <Price>k__BackingField: 500
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 017d2be51bb271e499f8facd2e2aaeae, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 30002 - <Idx>k__BackingField: 30002
<Name>k__BackingField: "\uC5BC\uC74C\uB3C4\uCE58 \uD325\uBE59\uC218" <Name>k__BackingField: "\uC5BC\uC74C\uB3C4\uCE58 \uD325\uBE59\uC218"
@ -451,7 +451,7 @@ MonoBehaviour:
<Price>k__BackingField: 500 <Price>k__BackingField: 500
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 103910208, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 30003 - <Idx>k__BackingField: 30003
<Name>k__BackingField: "\uCF54\uBFD4\uC18C \uBFD4 \uD280\uAE40" <Name>k__BackingField: "\uCF54\uBFD4\uC18C \uBFD4 \uD280\uAE40"
@ -471,7 +471,7 @@ MonoBehaviour:
<Price>k__BackingField: 500 <Price>k__BackingField: 500
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 1681919652, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 30005 - <Idx>k__BackingField: 30005
<Name>k__BackingField: "\uBC31\uC0C1\uC5B4 \uD1B5\uAD6C\uC774" <Name>k__BackingField: "\uBC31\uC0C1\uC5B4 \uD1B5\uAD6C\uC774"
@ -481,7 +481,7 @@ MonoBehaviour:
<Price>k__BackingField: 150 <Price>k__BackingField: 150
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 1040357770, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 30006 - <Idx>k__BackingField: 30006
<Name>k__BackingField: "\uBC84\uD130 \uC870\uAC1C \uAD6C\uC774" <Name>k__BackingField: "\uBC84\uD130 \uC870\uAC1C \uAD6C\uC774"
@ -491,7 +491,7 @@ MonoBehaviour:
<Price>k__BackingField: 140 <Price>k__BackingField: 140
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: -1313039003, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 40001 - <Idx>k__BackingField: 40001
<Name>k__BackingField: "\uB9E5\uC8FC" <Name>k__BackingField: "\uB9E5\uC8FC"
@ -501,7 +501,7 @@ MonoBehaviour:
<Price>k__BackingField: 0 <Price>k__BackingField: 0
<Weight>k__BackingField: 0 <Weight>k__BackingField: 0
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 1098625912, guid: 551ef1d8906c85f43bed28c7a5a67e9c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 50001 - <Idx>k__BackingField: 50001
<Name>k__BackingField: "\uD558\uD2B8 \uBC18 \uAC1C" <Name>k__BackingField: "\uD558\uD2B8 \uBC18 \uAC1C"
@ -511,8 +511,8 @@ MonoBehaviour:
<Price>k__BackingField: 0 <Price>k__BackingField: 0
<Weight>k__BackingField: 0 <Weight>k__BackingField: 0
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 8de91ee4e8525bb46bb309c15c5207d3, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 8962896418303621511, guid: 66d94bc59db241a4895f8e4fff7ea201, type: 3} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 50002 - <Idx>k__BackingField: 50002
<Name>k__BackingField: "\uD558\uD2B8 \uD55C \uAC1C" <Name>k__BackingField: "\uD558\uD2B8 \uD55C \uAC1C"
<Type>k__BackingField: 5 <Type>k__BackingField: 5
@ -521,8 +521,8 @@ MonoBehaviour:
<Price>k__BackingField: 0 <Price>k__BackingField: 0
<Weight>k__BackingField: 0 <Weight>k__BackingField: 0
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 4e2159443b5aedf43849ec062f4f8016, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 8962896418303621511, guid: 0dc7ed0facf2fca4b80244d0d95e2557, type: 3} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 60001 - <Idx>k__BackingField: 60001
<Name>k__BackingField: "\uC82C\uC2A4\uD1A4" <Name>k__BackingField: "\uC82C\uC2A4\uD1A4"
<Type>k__BackingField: 6 <Type>k__BackingField: 6
@ -531,7 +531,7 @@ MonoBehaviour:
<Price>k__BackingField: 1000 <Price>k__BackingField: 1000
<Weight>k__BackingField: 100 <Weight>k__BackingField: 100
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 1ddf647b8857bff45a83e009dbb9ec8c, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 60002 - <Idx>k__BackingField: 60002
<Name>k__BackingField: "\uD480\uC78E" <Name>k__BackingField: "\uD480\uC78E"
@ -541,8 +541,8 @@ MonoBehaviour:
<Price>k__BackingField: 10 <Price>k__BackingField: 10
<Weight>k__BackingField: 1 <Weight>k__BackingField: 1
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: ff92fed29107bb94e8011820502e8cb8, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 1370112280380943697, guid: 6dee5e24767665b48aa614edcd6f71a2, type: 3} <ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: 70001 - <Idx>k__BackingField: 70001
<Name>k__BackingField: "\uC7A5\uC791" <Name>k__BackingField: "\uC7A5\uC791"
<Type>k__BackingField: 7 <Type>k__BackingField: 7
@ -551,5 +551,65 @@ MonoBehaviour:
<Price>k__BackingField: 0 <Price>k__BackingField: 0
<Weight>k__BackingField: 0 <Weight>k__BackingField: 0
<Description>k__BackingField: <Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 21300000, guid: 318d98fbc21718d459483945b60b9baf, type: 3} <Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Item00
<Name>k__BackingField: "\uC800\uC8FC \uBC1B\uC740 \uBCF4\uB9AC"
<Type>k__BackingField: 1
<IngredientType>k__BackingField: 0
<Quality>k__BackingField: 0
<Price>k__BackingField: 50
<Weight>k__BackingField: 100
<Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Item01
<Name>k__BackingField: "\uC2EC\uC5F0\uC758 \uD574\uCD08"
<Type>k__BackingField: 1
<IngredientType>k__BackingField: 0
<Quality>k__BackingField: 0
<Price>k__BackingField: 50
<Weight>k__BackingField: 100
<Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Item02
<Name>k__BackingField: "\uB3C4\uAE68\uBE44 \uBD88"
<Type>k__BackingField: 1
<IngredientType>k__BackingField: 0
<Quality>k__BackingField: 0
<Price>k__BackingField: 50
<Weight>k__BackingField: 100
<Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Item03
<Name>k__BackingField: "\uC6A9\uC554 \uBCF4\uB9AC"
<Type>k__BackingField: 1
<IngredientType>k__BackingField: 0
<Quality>k__BackingField: 0
<Price>k__BackingField: 50
<Weight>k__BackingField: 100
<Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Item04
<Name>k__BackingField: "\uC601\uD63C\uC758 \uC548\uAC1C"
<Type>k__BackingField: 1
<IngredientType>k__BackingField: 0
<Quality>k__BackingField: 0
<Price>k__BackingField: 50
<Weight>k__BackingField: 100
<Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0}
- <Idx>k__BackingField: Item05
<Name>k__BackingField: "\uC5BC\uC74C \uC2AC\uB77C\uC784\uC758 \uC601\uD63C"
<Type>k__BackingField: 1
<IngredientType>k__BackingField: 0
<Quality>k__BackingField: 0
<Price>k__BackingField: 50
<Weight>k__BackingField: 100
<Description>k__BackingField:
<Sprite>k__BackingField: {fileID: 0}
<ItemPrefab>k__BackingField: {fileID: 0} <ItemPrefab>k__BackingField: {fileID: 0}

View File

@ -15,7 +15,7 @@ namespace BlueWater.Tycoons
[Title("손님 데이터")] [Title("손님 데이터")]
[SerializeField, Required] [SerializeField, Required]
private CustomerDataSo _customerDataSo; private CustomerDataSo _customerDataSo;
private Dictionary<int, CustomerData> _customerDatas; private Dictionary<string, CustomerData> _customerDatas;
[SerializeField, Required] [SerializeField, Required]
private Customer _customerPrefab; private Customer _customerPrefab;
@ -40,8 +40,8 @@ namespace BlueWater.Tycoons
protected override void OnAwake() protected override void OnAwake()
{ {
_customerDatas = new Dictionary<int, CustomerData>(_customerDataSo.CustomerDatas.Count); _customerDatas = new Dictionary<string, CustomerData>(_customerDataSo.Datas.Count);
foreach (var element in _customerDataSo.CustomerDatas) foreach (var element in _customerDataSo.Datas)
{ {
_customerDatas.TryAdd(element.Idx, element); _customerDatas.TryAdd(element.Idx, element);
} }

View File

@ -1,4 +1,7 @@
using System; using System;
using System.Collections.Generic;
using BlueWater.Items;
using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
namespace BlueWater.Tycoons namespace BlueWater.Tycoons
@ -8,5 +11,34 @@ namespace BlueWater.Tycoons
{ {
[field: SerializeField] [field: SerializeField]
public int Rating { get; private set; } = 1; public int Rating { get; private set; } = 1;
[field: Title("레시피 데이터")]
[field: SerializeField]
public List<string> FoodRecipes { get; private set; } = new();
[field: SerializeField]
public List<string> DrinkRecipes { get; private set; } = new();
public void AddFoodRecipe(string idx)
{
if (FoodRecipes.Contains(idx)) return;
var foodData = ItemManager.Instance.GetFoodDataByIdx(idx);
if (foodData == null) return;
FoodRecipes.Add(idx);
TycoonEvents.OnFoodRecipeAcquired?.Invoke(idx);
}
public void AddDrinkRecipe(string idx)
{
if (DrinkRecipes.Contains(idx)) return;
var drinkData = ItemManager.Instance.GetDrinkDataByIdx(idx);
if (drinkData == null) return;
DrinkRecipes.Add(idx);
TycoonEvents.OnDrinkRecipeAcquired?.Invoke(idx);
}
} }
} }

View File

@ -0,0 +1,22 @@
using System;
using BlueWater.Items;
namespace BlueWater
{
public static class TycoonEvents
{
// 음료
public static Action<string> OnDrinkRecipeAcquired;
public static Action OnBrewingUiOpened;
public static Action OnBrewingUiClosed;
public static Action<DrinkData> OnDrinkRecipeSelected;
public static Action OnDrinkUiOpened;
public static Action OnDrinkUiClosed;
// 요리
public static Action<string> OnFoodRecipeAcquired;
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 994f39ba80e685044b9bc070cd511a09

View File

@ -82,7 +82,7 @@ namespace BlueWater
MainCamera = GetComponent<Camera>(); MainCamera = GetComponent<Camera>();
_cinemachineBrain = GetComponent<CinemachineBrain>(); _cinemachineBrain = GetComponent<CinemachineBrain>();
UiCamera = MainCamera.transform.Find("UiCamera").GetComponent<Camera>(); //UiCamera = MainCamera.transform.Find("UiCamera").GetComponent<Camera>();
BaseCamera = cameraLocation.Find("BaseCamera").GetComponent<CinemachineCamera>(); BaseCamera = cameraLocation.Find("BaseCamera").GetComponent<CinemachineCamera>();
BarCamera = cameraLocation.Find("BarCamera").GetComponent<CinemachineCamera>(); BarCamera = cameraLocation.Find("BarCamera").GetComponent<CinemachineCamera>();

View File

@ -62,6 +62,7 @@ namespace BlueWater.Uis
{ {
PopupUi.OnPopupUiOpenEvent += RegisterPopup; PopupUi.OnPopupUiOpenEvent += RegisterPopup;
PopupUi.OnPopupUiCloseEvent += UnregisterPopup; PopupUi.OnPopupUiCloseEvent += UnregisterPopup;
GlobalEvents.FadeInOut += FadeInOut;
Invoke(nameof(StartTutorial), 0.1f); Invoke(nameof(StartTutorial), 0.1f);
} }
@ -77,6 +78,7 @@ namespace BlueWater.Uis
PopupUi.OnPopupUiOpenEvent -= RegisterPopup; PopupUi.OnPopupUiOpenEvent -= RegisterPopup;
PopupUi.OnPopupUiCloseEvent -= UnregisterPopup; PopupUi.OnPopupUiCloseEvent -= UnregisterPopup;
GlobalEvents.FadeInOut -= FadeInOut;
} }
[Button("셋팅 초기화")] [Button("셋팅 초기화")]

View File

@ -0,0 +1,70 @@
using System;
using BlueWater.Items;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace BlueWater.Uis
{
[Serializable]
public class BrewingIngredientSlotUi : MonoBehaviour
{
[SerializeField]
private Image _image;
[SerializeField]
private TMP_Text _quantity;
[SerializeField]
private Color _enoughColor = Color.black;
[SerializeField]
private Color _notEnoughColor = Color.red;
private string _ingredientIdx;
private int _inventoryQuantity;
private int _needQuantity;
private bool _isEnough;
/// <summary>
/// 양조장에서 레시피를 선택했을 때, 재료를 설정하는 함수
/// </summary>
/// <param name="ingredientIdx">재료의 Idx</param>
/// <param name="quantity">재료 요구량</param>
public void SetIngredient(string ingredientIdx, int quantity)
{
_ingredientIdx = ingredientIdx;
_needQuantity = quantity;
var ingredientItemData = ItemManager.Instance.GetItemDataByIdx(_ingredientIdx);
_image.sprite = ingredientItemData.Sprite;
_inventoryQuantity = DataManager.Instance.Inventory.GetItemByIdx(_ingredientIdx).Quantity;
SetQuantity();
}
/// <summary>
/// 재료 수량 변경하는 함수
/// 여러개를 제작하는 경우 multiply값을 조정
/// </summary>
/// <param name="multiply">제조하는 개수</param>
public void SetQuantity(int multiply = 1)
{
var finalNeedQuantity = _needQuantity * multiply;
_quantity.text = $"{_inventoryQuantity}/{finalNeedQuantity}";
_isEnough = _inventoryQuantity >= finalNeedQuantity;
_quantity.color = _isEnough ? _enoughColor : _notEnoughColor;
}
/// <summary>
/// 현재 인벤토리의 재료로 만들 수 있는 최대 개수 반환 함수
/// </summary>
/// <returns></returns>
public int GetMaxQuantity()
{
if (_needQuantity == 0) return 1;
return _inventoryQuantity / _needQuantity;
}
public bool GetIsEnough() => _isEnough;
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 9cbe519b68d07ad4285f091528d6a34d

View File

@ -0,0 +1,188 @@
using System.Collections.Generic;
using BlueWater.Items;
using BlueWater.Tycoons;
using Sirenix.OdinInspector;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace BlueWater.Uis
{
public class BrewingUi : SwitchActionPopupUi
{
[SerializeField, Required]
private DrinkRecipeSlotUi _drinkRecipeSlotUiPrefab;
[SerializeField, Required]
private Transform _drinkRecipeSpawnLocation;
[SerializeField]
private TMP_Text _recipeName;
[SerializeField]
private Image _drinkImage;
[SerializeField]
private Button _convertButton;
[Title("실시간 데이터")]
[SerializeField]
private List<BrewingIngredientSlotUi> _brewingIngredientSlotUis = new(3);
[SerializeField]
private DrinkData _selectedDrinkData;
[SerializeField]
private Brewing _currentBrewing;
private List<DrinkRecipeSlotUi> _drinkRecipeSlotUis = new();
private void Start()
{
Initialize();
TycoonEvents.OnDrinkRecipeAcquired += AddDrinkRecipe;
TycoonEvents.OnDrinkRecipeSelected += SelectDrinkRecipe;
}
private void OnDestroy()
{
TycoonEvents.OnDrinkRecipeAcquired -= AddDrinkRecipe;
TycoonEvents.OnDrinkRecipeSelected -= SelectDrinkRecipe;
}
private void Initialize()
{
foreach (Transform element in _drinkRecipeSpawnLocation)
{
Destroy(element.gameObject);
}
var drinkRecipes = DataManager.Instance.TycoonData.DrinkRecipes;
foreach (var element in drinkRecipes)
{
AddDrinkRecipe(element);
}
}
public override void Open(List<PopupUi> popupUiList)
{
base.Open(popupUiList);
ResetBrewingUi();
TycoonEvents.OnBrewingUiOpened?.Invoke();
}
public override void Close()
{
base.Close();
_currentBrewing = null;
ResetBrewingUi();
TycoonEvents.OnBrewingUiClosed?.Invoke();
}
private void ResetBrewingUi()
{
_selectedDrinkData = null;
_recipeName.text = null;
_drinkImage.enabled = false;
SetBrewingIngredient();
foreach (var element in _brewingIngredientSlotUis)
{
element.gameObject.SetActive(false);
}
}
public void SetBrewing(Brewing brewing)
{
_currentBrewing = brewing;
ShowDrinkRecipeByCategory();
}
private void AddDrinkRecipe(string idx)
{
var instance = Instantiate(_drinkRecipeSlotUiPrefab, _drinkRecipeSpawnLocation);
instance.Initialize(idx);
_drinkRecipeSlotUis.Add(instance);
}
private void ShowDrinkRecipeByCategory()
{
var currentDrinkCategory = _currentBrewing.GetDrinkCategory();
foreach (var element in _drinkRecipeSlotUis)
{
element.gameObject.SetActive(currentDrinkCategory == element.GetDrinkData().Category);
}
}
public void SelectDrinkRecipe(DrinkData drinkData)
{
_selectedDrinkData = drinkData;
_recipeName.text = _selectedDrinkData.Name;
_drinkImage.sprite = drinkData.Sprite;
_drinkImage.enabled = true;
var ingredients = _selectedDrinkData.GetValidIngredients();
for (var i = 0; i < 3; i++)
{
if (ingredients.Count > i)
{
_brewingIngredientSlotUis[i].SetIngredient(ingredients[i].Idx, ingredients[i].Quantity);
_brewingIngredientSlotUis[i].gameObject.SetActive(true);
}
else
{
_brewingIngredientSlotUis[i].gameObject.SetActive(false);
}
}
SetBrewingIngredient();
}
private void SetBrewingIngredient()
{
foreach (var element in _brewingIngredientSlotUis)
{
element.SetQuantity();
}
CheckConvertButton();
}
private void CheckConvertButton()
{
if (_selectedDrinkData == null || !_currentBrewing.IsEmptyDrink())
{
_convertButton.interactable = false;
return;
}
var ingredients = _selectedDrinkData.GetValidIngredients();
if (ingredients.Count <= 0)
{
_convertButton.interactable = false;
return;
}
for (var i = 0; i < ingredients.Count; i++)
{
if (_brewingIngredientSlotUis[i].GetIsEnough()) continue;
_convertButton.interactable = false;
return;
}
_convertButton.interactable = true;
}
/// <summary>
/// 술을 만들 때 최종 버튼
/// </summary>
public void ConvertButton()
{
_currentBrewing.SetDrink(_selectedDrinkData);
}
}
}

View File

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

View File

@ -62,13 +62,13 @@ namespace BlueWater.Uis
private void Start() private void Start()
{ {
_dataManager.OnChangeFoodRecipe += AddFoodRecipe; TycoonEvents.OnFoodRecipeAcquired += AddFoodRecipe;
_dataManager.Inventory.OnChangeItemSlot += OnInventoryChange; _dataManager.Inventory.OnChangeItemSlot += OnInventoryChange;
} }
private void OnDestroy() private void OnDestroy()
{ {
_dataManager.OnChangeFoodRecipe -= AddFoodRecipe; TycoonEvents.OnFoodRecipeAcquired -= AddFoodRecipe;
_dataManager.Inventory.OnChangeItemSlot -= OnInventoryChange; _dataManager.Inventory.OnChangeItemSlot -= OnInventoryChange;
} }
@ -112,7 +112,7 @@ namespace BlueWater.Uis
private void InventorySynchronization() private void InventorySynchronization()
{ {
foreach (var element in _dataManager.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.GetFoodDataByIdx(element);
@ -122,8 +122,9 @@ namespace BlueWater.Uis
} }
} }
private void AddFoodRecipe(FoodData foodData) private void AddFoodRecipe(string idx)
{ {
var foodData = _itemManager.GetFoodDataByIdx(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);
@ -194,7 +195,7 @@ namespace BlueWater.Uis
public void CheckCookable() public void CheckCookable()
{ {
if (_selectedFoodData == null || _selectedFoodData.Idx == 0) if (_selectedFoodData == null || string.IsNullOrEmpty(_selectedFoodData.Idx))
{ {
_cookButton.interactable = false; _cookButton.interactable = false;
_cookText.color = _cookButton.colors.disabledColor; _cookText.color = _cookButton.colors.disabledColor;

View File

@ -100,7 +100,7 @@ namespace BlueWater.Uis
foreach (var element in selectedTypeItemSlotUis) foreach (var element in selectedTypeItemSlotUis)
{ {
if (!element.GetIsLocked() && element.FoodData is null or { Idx: 0 }) if (!element.GetIsLocked() && element.FoodData == null || string.IsNullOrEmpty(element.FoodData.Idx))
{ {
return true; return true;
} }
@ -115,7 +115,7 @@ namespace BlueWater.Uis
foreach (var element in selectedTypeItemSlotUis) foreach (var element in selectedTypeItemSlotUis)
{ {
if (!element.GetIsLocked() && element.FoodData is null or { Idx: 0 }) if (!element.GetIsLocked() && element.FoodData == null || string.IsNullOrEmpty(element.FoodData.Idx))
{ {
element.SetFoodData(selectedFoodData); element.SetFoodData(selectedFoodData);
DailyFoodSlotUis.Add(element); DailyFoodSlotUis.Add(element);
@ -146,10 +146,10 @@ namespace BlueWater.Uis
public bool CanOpen() public bool CanOpen()
{ {
return _grillFoodSlotUis.Any(slot => slot.FoodData is not null and not { Idx: 0 }) || return _grillFoodSlotUis.Any(slot => slot.FoodData != null && !string.IsNullOrEmpty(slot.FoodData.Idx)) ||
_soupFoodSlotUis.Any(slot => slot.FoodData is not null and not { Idx: 0 }) || _soupFoodSlotUis.Any(slot => slot.FoodData != null && !string.IsNullOrEmpty(slot.FoodData.Idx)) ||
_skewerFoodSlotUis.Any(slot => slot.FoodData is not null and not { Idx: 0 }) || _skewerFoodSlotUis.Any(slot => slot.FoodData != null && !string.IsNullOrEmpty(slot.FoodData.Idx)) ||
_dessertPanFoodSlotUis.Any(slot => slot.FoodData is not null and not { Idx: 0 }); _dessertPanFoodSlotUis.Any(slot => slot.FoodData != null && !string.IsNullOrEmpty(slot.FoodData.Idx));
} }
public TycoonItemSlotUi InitializeGrill(Grill grill) public TycoonItemSlotUi InitializeGrill(Grill grill)

View File

@ -0,0 +1,23 @@
using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace BlueWater.Uis
{
[Serializable]
public class DrinkIngredientSlotUi : MonoBehaviour
{
[SerializeField]
private Button _button;
[SerializeField]
private Image _image;
[SerializeField]
private TMP_Text _amount;
[SerializeField]
private TMP_Text _name;
}
}

View File

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

View File

@ -0,0 +1,9 @@
using UnityEngine;
namespace BlueWater.Uis
{
public class DrinkIngredientUi : MonoBehaviour
{
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 63ce83525ba260f46904cfce776fc892

View File

@ -0,0 +1,38 @@
using System;
using BlueWater.Items;
using UnityEngine;
using UnityEngine.UI;
namespace BlueWater.Uis
{
[Serializable]
public class DrinkRecipeSlotUi : MonoBehaviour
{
[SerializeField]
private Button _button;
[SerializeField]
private Image _image;
[SerializeField]
private DrinkData _drinkData;
private void Awake()
{
_button.onClick.AddListener(OnButtonClick);
}
public void Initialize(string idx)
{
_drinkData = ItemManager.Instance.GetDrinkDataByIdx(idx);
_image.sprite = _drinkData.Sprite;
}
public void OnButtonClick()
{
TycoonEvents.OnDrinkRecipeSelected?.Invoke(_drinkData);
}
public DrinkData GetDrinkData() => _drinkData;
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 7bd1ab91d6987874b990c073d62ad645

View File

@ -0,0 +1,23 @@
using System.Collections.Generic;
namespace BlueWater.Uis
{
public class DrinkUi : SwitchActionPopupUi
{
public override void Open(List<PopupUi> popupUiList)
{
base.Open(popupUiList);
TycoonCameraManager.Instance.SetMainCamera(TycoonCameraType.Bar);
TycoonEvents.OnDrinkUiOpened?.Invoke();
}
public override void Close()
{
base.Close();
TycoonCameraManager.Instance.SetMainCamera(TycoonCameraType.Base);
TycoonEvents.OnDrinkUiClosed?.Invoke();
}
}
}

View File

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

View File

@ -56,7 +56,7 @@ namespace BlueWater.Uis
public void ShowUi() => gameObject.SetActive(true); public void ShowUi() => gameObject.SetActive(true);
public void HideUi() => gameObject.SetActive(false); public void HideUi() => gameObject.SetActive(false);
public void SetFoodImage(int foodIdx) public void SetFoodImage(string foodIdx)
{ {
_orderItemData = ItemManager.Instance.GetItemDataByIdx(foodIdx); _orderItemData = ItemManager.Instance.GetItemDataByIdx(foodIdx);
if (_orderItemData == null) if (_orderItemData == null)
@ -72,12 +72,12 @@ namespace BlueWater.Uis
FoodImage.sprite = _orderItemData.Sprite; FoodImage.sprite = _orderItemData.Sprite;
} }
public void SetFoodImage(Sprite sprite) public void SetFoodSprite(Sprite sprite)
{ {
FoodImage.sprite = sprite; FoodImage.sprite = sprite;
} }
public void OrderFood(int foodIdx, int waitTime, int hurryTime) public void OrderFood(string foodIdx, int waitTime, int hurryTime)
{ {
_isOrdered = true; _isOrdered = true;
_isWaitTimeOver = false; _isWaitTimeOver = false;
@ -99,7 +99,7 @@ namespace BlueWater.Uis
_isOrdered = true; _isOrdered = true;
_isWaitTimeOver = false; _isWaitTimeOver = false;
_isFoodReceived = false; _isFoodReceived = false;
SetFoodImage(DataManager.Instance.SpriteDataSo.Gold); SetFoodSprite(DataManager.Instance.SpriteDataSo.Gold);
ShowUi(); ShowUi();
_tween = FillImage.DOFillAmount(1f, hurryTime) _tween = FillImage.DOFillAmount(1f, hurryTime)

View File

@ -1,9 +1,9 @@
using System;
using System.Collections.Generic; using System.Collections.Generic;
using BlueWater.Tycoons; using BlueWater.Tycoons;
using DG.Tweening; using DG.Tweening;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
using UnityEngine.UI;
namespace BlueWater.Uis namespace BlueWater.Uis
{ {
@ -27,6 +27,16 @@ namespace BlueWater.Uis
[field: SerializeField] [field: SerializeField]
public TycoonStageUi TycoonStageUi { get; private set; } public TycoonStageUi TycoonStageUi { get; private set; }
[field: SerializeField]
public BrewingUi BrewingUi { get; private set; }
[field: SerializeField]
public DrinkUi DrinkUi { get; private set; }
[SerializeField]
private Image _fadeImage;
// Variables // Variables
public List<PopupUi> PopupUiList { get; private set; } public List<PopupUi> PopupUiList { get; private set; }
@ -41,29 +51,23 @@ namespace BlueWater.Uis
} }
private void Start() private void Start()
{
TycoonManager.Instance.OnTycoonOpenedEvent += TycoonOpenEvent;
TycoonManager.Instance.OnTycoonClosedEvent += TycoonClosedEvent;
}
private void OnEnable()
{ {
PopupUi.OnPopupUiOpenEvent += RegisterPopup; PopupUi.OnPopupUiOpenEvent += RegisterPopup;
PopupUi.OnPopupUiCloseEvent += UnregisterPopup; PopupUi.OnPopupUiCloseEvent += UnregisterPopup;
} TycoonManager.Instance.OnTycoonOpenedEvent += TycoonOpenEvent;
TycoonManager.Instance.OnTycoonClosedEvent += TycoonClosedEvent;
private void OnDisable() GlobalEvents.FadeInOut += FadeInOut;
{
PopupUi.OnPopupUiOpenEvent -= RegisterPopup;
PopupUi.OnPopupUiCloseEvent -= UnregisterPopup;
} }
private void OnDestroy() private void OnDestroy()
{ {
if (Quitting) return; if (Quitting) return;
PopupUi.OnPopupUiOpenEvent -= RegisterPopup;
PopupUi.OnPopupUiCloseEvent -= UnregisterPopup;
TycoonManager.Instance.OnTycoonOpenedEvent -= TycoonOpenEvent; TycoonManager.Instance.OnTycoonOpenedEvent -= TycoonOpenEvent;
TycoonManager.Instance.OnTycoonClosedEvent -= TycoonClosedEvent; TycoonManager.Instance.OnTycoonClosedEvent -= TycoonClosedEvent;
GlobalEvents.FadeInOut -= FadeInOut;
} }
#endregion #endregion
@ -79,6 +83,9 @@ namespace BlueWater.Uis
TycoonUpgradeUi = GetComponentInChildren<TycoonUpgradeUi>(true); TycoonUpgradeUi = GetComponentInChildren<TycoonUpgradeUi>(true);
TycoonManagementUi = GetComponentInChildren<TycoonManagementUi>(true); TycoonManagementUi = GetComponentInChildren<TycoonManagementUi>(true);
TycoonStageUi = GetComponentInChildren<TycoonStageUi>(true); TycoonStageUi = GetComponentInChildren<TycoonStageUi>(true);
BrewingUi = GetComponentInChildren<BrewingUi>(true);
DrinkUi = GetComponentInChildren<DrinkUi>(true);
_fadeImage = MainCanvas.transform.Find("FadeImage").GetComponent<Image>();
PopupUiList = new List<PopupUi>(8); PopupUiList = new List<PopupUi>(8);
} }
@ -136,6 +143,27 @@ namespace BlueWater.Uis
TycoonManagementUi.CookMenuUi.DailyFoodMenuUi.TycoonClosed(); TycoonManagementUi.CookMenuUi.DailyFoodMenuUi.TycoonClosed();
} }
public void FadeInOut(float fadeInTime, float fadeOutTime, Color? fadeColor = null, float delayAfterFadeIn = 0f)
{
var newColor = new Color(1f, 1f, 1f, 0f);
if (fadeColor != null)
{
newColor = (Color)fadeColor;
}
_fadeImage.color = newColor;
_fadeImage.enabled = true;
_fadeImage.DOFade(1f, fadeInTime).OnComplete(() =>
{
DOVirtual.DelayedCall(delayAfterFadeIn, () =>
{
_fadeImage.DOFade(0f, fadeOutTime).OnComplete(() =>
{
_fadeImage.enabled = false;
});
});
});
}
#endregion #endregion
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 5317214c6c3a1d74c97c68e6ba525593
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 512
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -118,6 +118,10 @@ Material:
- _GlossMapScale: 0 - _GlossMapScale: 0
- _Glossiness: 0 - _Glossiness: 0
- _GlossyReflections: 0 - _GlossyReflections: 0
- _LiquidAmount: 1
- _LiquidFrequency: 18
- _LiquidSpeed: 3
- _LiquidTopWidth: 15
- _Metallic: 0 - _Metallic: 0
- _OcclusionStrength: 1 - _OcclusionStrength: 1
- _Parallax: 0.005 - _Parallax: 0.005
@ -134,6 +138,7 @@ Material:
- _SrcBlendAlpha: 1 - _SrcBlendAlpha: 1
- _Surface: 0 - _Surface: 0
- _Test: 0 - _Test: 0
- _TopMaskHeight: 0.035
- _Visibility: 0.1 - _Visibility: 0.1
- _WaterFrequency: 10 - _WaterFrequency: 10
- _WaterLevel: 1 - _WaterLevel: 1
@ -148,6 +153,8 @@ Material:
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FillAmount: {r: 0, g: 0, b: 0, a: 0} - _FillAmount: {r: 0, g: 0, b: 0, a: 0}
- _FormColor: {r: 0.4078431, g: 1.317647, b: 1.4980392, a: 0} - _FormColor: {r: 0.4078431, g: 1.317647, b: 1.4980392, a: 0}
- _LiquidColor: {r: 2, g: 1.6862745, b: 0, a: 0}
- _LiquidTopColor: {r: 1, g: 1, b: 1, a: 0}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- _WaterColor: {r: 0, g: 1.5319147, b: 2, a: 0} - _WaterColor: {r: 0, g: 1.5319147, b: 2, a: 0}
- _WaterTopColor: {r: 1, g: 1, b: 1, a: 0} - _WaterTopColor: {r: 1, g: 1, b: 1, a: 0}

View File

@ -514,7 +514,7 @@ MonoBehaviour:
m_Calls: m_Calls:
- m_Target: {fileID: 1674052485383758547} - m_Target: {fileID: 1674052485383758547}
m_TargetAssemblyTypeName: BlueWater.Players.Tycoons.TycoonInput, Assembly-CSharp m_TargetAssemblyTypeName: BlueWater.Players.Tycoons.TycoonInput, Assembly-CSharp
m_MethodName: OnEscapeBar m_MethodName: OnCancel
m_Mode: 0 m_Mode: 0
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}

View File

@ -0,0 +1,154 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4182144982868500803
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7412895653495447626}
- component: {fileID: 2516316322156046459}
- component: {fileID: 8452260105535798107}
- component: {fileID: 8043191264785836122}
m_Layer: 8
m_Name: Ice
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7412895653495447626
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4182144982868500803}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 330.7, y: 17.7, z: 0}
m_LocalScale: {x: 5, y: 5, z: 5}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2516316322156046459
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4182144982868500803}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 2
m_Sprite: {fileID: 21300000, guid: 5317214c6c3a1d74c97c68e6ba525593, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!50 &8452260105535798107
Rigidbody2D:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4182144982868500803}
m_BodyType: 0
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 50
m_LinearDamping: 0
m_AngularDamping: 0.05
m_GravityScale: 3
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 0
--- !u!58 &8043191264785836122
CircleCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4182144982868500803}
m_Enabled: 1
serializedVersion: 3
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 0
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0, y: 0}
m_Radius: 0.45

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c5e5fa01b84c9f64ba05b7c9f481acc1
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -76,9 +76,9 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0 m_SortingLayerID: -403788685
m_SortingLayer: 0 m_SortingLayer: 1
m_SortingOrder: 0 m_SortingOrder: 11
m_Sprite: {fileID: 21300000, guid: c6fd44c44ec0c504c9d09e9c3e421708, type: 3} m_Sprite: {fileID: 21300000, guid: c6fd44c44ec0c504c9d09e9c3e421708, type: 3}
m_Color: {r: 0, g: 0.7294118, b: 1, a: 1} m_Color: {r: 0, g: 0.7294118, b: 1, a: 1}
m_FlipX: 0 m_FlipX: 0
@ -166,4 +166,5 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_spriteRenderer: {fileID: 3772201455671009312} _spriteRenderer: {fileID: 3772201455671009312}
_rigidbody2D: {fileID: 3470010340248184897}
_distanceThreshold: 0.5 _distanceThreshold: 0.5

View File

@ -49,6 +49,8 @@ MonoBehaviour:
_itemDataSo: {fileID: 11400000, guid: d7011c71193e95743aa868ca1bea6010, type: 2} _itemDataSo: {fileID: 11400000, guid: d7011c71193e95743aa868ca1bea6010, type: 2}
_itemDropTableSo: {fileID: 11400000, guid: 9e1384a77106eb845ad86d6834ba9a52, type: 2} _itemDropTableSo: {fileID: 11400000, guid: 9e1384a77106eb845ad86d6834ba9a52, type: 2}
_foodDataSo: {fileID: 11400000, guid: 7b282dfe68d23cd48a8f437ae2cd7dde, type: 2} _foodDataSo: {fileID: 11400000, guid: 7b282dfe68d23cd48a8f437ae2cd7dde, type: 2}
_cocktailDataSo: {fileID: 11400000, guid: b28d3497d1f428046bc82469f2056bac, type: 2}
_drinkDataSo: {fileID: 11400000, guid: 24a7d2ebd11ba314684a6d3ef72f76a0, 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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f7c3d6c0326461c4a97315587aa777d3
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -2236,6 +2236,38 @@ SpriteRenderer:
m_WasSpriteAssigned: 1 m_WasSpriteAssigned: 1
m_MaskInteraction: 0 m_MaskInteraction: 0
m_SpriteSortPoint: 0 m_SpriteSortPoint: 0
--- !u!1 &6087175350744434136
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8503017458650113872}
m_Layer: 0
m_Name: Portals
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8503017458650113872
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6087175350744434136}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8954638006741231135}
m_Father: {fileID: 2700294535905665279}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &6100274519667895078 --- !u!1 &6100274519667895078
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -3128,6 +3160,7 @@ Transform:
- {fileID: 4449232531499695111} - {fileID: 4449232531499695111}
- {fileID: 3249711671270954515} - {fileID: 3249711671270954515}
- {fileID: 6858073917342497661} - {fileID: 6858073917342497661}
- {fileID: 8503017458650113872}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &9141378804429029863 --- !u!1 &9141378804429029863
@ -3882,6 +3915,76 @@ Transform:
m_CorrespondingSourceObject: {fileID: 1061695247072719575, guid: 28c8f2cd9a2817345b5d1fe15e1bebd3, type: 3} m_CorrespondingSourceObject: {fileID: 1061695247072719575, guid: 28c8f2cd9a2817345b5d1fe15e1bebd3, type: 3}
m_PrefabInstance: {fileID: 684458854489471985} m_PrefabInstance: {fileID: 684458854489471985}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1001 &715352878371128445
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 8503017458650113872}
m_Modifications:
- target: {fileID: 3695289696544250322, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_Name
value: MapPortal
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalScale.x
value: 2
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalScale.y
value: 2
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalPosition.x
value: 22.5
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalPosition.z
value: 3
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 798202f522c348649add7379a99abad4, type: 3}
--- !u!4 &8954638006741231135 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 8478081780112990818, guid: 798202f522c348649add7379a99abad4, type: 3}
m_PrefabInstance: {fileID: 715352878371128445}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &796572536300976765 --- !u!1001 &796572536300976765
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -0,0 +1,206 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &7343451337687172630
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1180174675498993111, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 40
objectReference: {fileID: 0}
- target: {fileID: 2106642157007834423, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2234961990804426782, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Size.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2234961990804426782, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Center.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2234961990804426782, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_IsTrigger
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2301048832536013177, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalScale.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2301048832536013177, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalScale.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2301048832536013177, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalScale.z
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2301048832536013177, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_AnchoredPosition.y
value: 80
objectReference: {fileID: 0}
- target: {fileID: 3580758810857167321, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: -2413806693520163455, guid: e074a9b4b276847b0b578d2c96d2c1db, type: 3}
- target: {fileID: 3580758810857167321, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_WasSpriteAssigned
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3764902268943045601, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Name
value: Brewing
objectReference: {fileID: 0}
- target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalPosition.y
value: 0.01
objectReference: {fileID: 0}
- target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalRotation.x
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 90
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalScale.x
value: 2
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalScale.y
value: 2
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalScale.z
value: 2
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9047629830516719732, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: 4fd4ec246d4e26642bf91830e74f9ef6, type: 3}
- target: {fileID: 9047629830516719732, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
propertyPath: m_WasSpriteAssigned
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 3764902268943045601, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
insertIndex: -1
addedObject: {fileID: 8652528336631469544}
m_SourcePrefab: {fileID: 100100000, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
--- !u!4 &809828747251277026 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 7986070582027999988, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
m_PrefabInstance: {fileID: 7343451337687172630}
m_PrefabAsset: {fileID: 0}
--- !u!1 &5897095096647521783 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3764902268943045601, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
m_PrefabInstance: {fileID: 7343451337687172630}
m_PrefabAsset: {fileID: 0}
--- !u!114 &8652528336631469544
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5897095096647521783}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c91b7baeb9c76614b96438969213025d, type: 3}
m_Name:
m_EditorClassIdentifier:
<CenterTransform>k__BackingField: {fileID: 809828747251277026}
<VisualLook>k__BackingField: {fileID: 6077686033771388879}
<InteractionCanvas>k__BackingField: {fileID: 8975593228546502023}
<InteractionUi>k__BackingField: {fileID: 8793236136028073839}
<OutlineMaterial>k__BackingField: {fileID: 2100000, guid: 9db92b3ac1f276e42ae7d7bcfbbca549, type: 2}
<EnableInteraction>k__BackingField: 1
<InteractionRadius>k__BackingField: 1
IsOpened: 0
_category: 1
_currentDrinkData:
<Idx>k__BackingField:
<Name>k__BackingField:
<Category>k__BackingField: 0
<Amount>k__BackingField: 0
<AlcoholVolume>k__BackingField: 0
<CoolWarm>k__BackingField: 0
<BitterSweet>k__BackingField: 0
<Scent>k__BackingField: 0
<IngredientIdx1>k__BackingField:
<IngredientQuantity1>k__BackingField: 0
<IngredientIdx2>k__BackingField:
<IngredientQuantity2>k__BackingField: 0
<IngredientIdx3>k__BackingField:
<IngredientQuantity3>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0}
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
_currentQuantity: 0
--- !u!212 &6077686033771388879 stripped
SpriteRenderer:
m_CorrespondingSourceObject: {fileID: 3580758810857167321, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
m_PrefabInstance: {fileID: 7343451337687172630}
m_PrefabAsset: {fileID: 0}
--- !u!224 &8793236136028073839 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 2301048832536013177, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
m_PrefabInstance: {fileID: 7343451337687172630}
m_PrefabAsset: {fileID: 0}
--- !u!223 &8975593228546502023 stripped
Canvas:
m_CorrespondingSourceObject: {fileID: 1830317875510668177, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
m_PrefabInstance: {fileID: 7343451337687172630}
m_PrefabAsset: {fileID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1a2352b28d12d8447add43c57d5693cd
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,305 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1182616395320353421
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4291285538023367731}
- component: {fileID: 3526131180264739386}
- component: {fileID: 1867833522526193987}
- component: {fileID: 267286335665872847}
m_Layer: 5
m_Name: BrewingIngredientSlotUi
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4291285538023367731
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1182616395320353421}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6805624194781434691}
- {fileID: 4191877325789217629}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 70}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3526131180264739386
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1182616395320353421}
m_CullTransparentMesh: 1
--- !u!114 &1867833522526193987
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1182616395320353421}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &267286335665872847
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1182616395320353421}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9cbe519b68d07ad4285f091528d6a34d, type: 3}
m_Name:
m_EditorClassIdentifier:
_image: {fileID: 5116175286389725112}
_quantity: {fileID: 4457544949394274766}
--- !u!1 &5042975899005958474
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4191877325789217629}
- component: {fileID: 5010397983200453369}
- component: {fileID: 4457544949394274766}
m_Layer: 5
m_Name: Quantity
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4191877325789217629
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5042975899005958474}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4291285538023367731}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 140, y: 0}
m_SizeDelta: {x: -280, y: 80}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5010397983200453369
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5042975899005958474}
m_CullTransparentMesh: 1
--- !u!114 &4457544949394274766
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5042975899005958474}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 0/1
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: dabfdeb80b25d44b4ace56414d0eb4ad, type: 2}
m_sharedMaterial: {fileID: 2100000, guid: 0e5360dce269ccc42b822a424d66fbd4, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4278190080
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6090708670001506049
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6805624194781434691}
- component: {fileID: 6664213692802274154}
- component: {fileID: 5116175286389725112}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6805624194781434691
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6090708670001506049}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4291285538023367731}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 200, y: 0}
m_SizeDelta: {x: 80, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6664213692802274154
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6090708670001506049}
m_CullTransparentMesh: 1
--- !u!114 &5116175286389725112
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6090708670001506049}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.1981132, g: 0.1981132, b: 0.1981132, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f9e46dadb5448ee4883f8b114e9c6488
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More