CapersProject/Assets/02.Scripts/Item/Cocktail/CocktailData.cs

71 lines
3.6 KiB
C#
Raw Normal View History

2024-08-22 10:39:15 +00:00
using System;
using System.Collections.Generic;
using BlueWater.Interfaces;
using Sirenix.OdinInspector;
using UnityEngine;
namespace BlueWater.Items
{
[Serializable]
2024-09-10 10:25:05 +00:00
public class CocktailData : IPickup
2024-08-22 10:39:15 +00:00
{
[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 데이터 영역")]
2024-10-22 12:41:31 +00:00
public int IngredientRatio1 { get; set; }
2024-08-22 10:39:15 +00:00
[field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx2 { get; set; }
[field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
2024-10-22 12:41:31 +00:00
public int IngredientRatio2 { get; set; }
2024-08-22 10:39:15 +00:00
[field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx3 { get; set; }
[field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
2024-10-22 12:41:31 +00:00
public int IngredientRatio3 { get; set; }
2024-08-22 10:39:15 +00:00
[field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx4 { get; set; }
[field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
2024-10-22 12:41:31 +00:00
public int IngredientRatio4 { get; set; }
2024-08-22 10:39:15 +00:00
[field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
public string IngredientIdx5 { get; set; }
[field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
2024-10-22 12:41:31 +00:00
public int IngredientRatio5 { get; set; }
2024-08-22 10:39:15 +00:00
[BoxGroup("직접 추가하는 영역")]
[field: SerializeField, BoxGroup("직접 추가하는 영역")]
public Sprite Sprite { get; set; }
2024-10-22 12:41:31 +00:00
public List<CocktailIngredient> ValidIngredients { get; set; } = new(5);
2024-10-22 12:41:31 +00:00
public List<CocktailIngredient> GetValidIngredients(int liquidMaxAmount)
2024-08-22 10:39:15 +00:00
{
var ingredients = new List<CocktailIngredient>(5);
2024-10-22 12:41:31 +00:00
if (!string.IsNullOrEmpty(IngredientIdx1)) ingredients.Add(new CocktailIngredient(IngredientIdx1, IngredientRatio1, (int)(liquidMaxAmount * (IngredientRatio1 / 100f))));
if (!string.IsNullOrEmpty(IngredientIdx2)) ingredients.Add(new CocktailIngredient(IngredientIdx2, IngredientRatio2, (int)(liquidMaxAmount * (IngredientRatio2 / 100f))));
if (!string.IsNullOrEmpty(IngredientIdx3)) ingredients.Add(new CocktailIngredient(IngredientIdx3, IngredientRatio3, (int)(liquidMaxAmount * (IngredientRatio3 / 100f))));
if (!string.IsNullOrEmpty(IngredientIdx4)) ingredients.Add(new CocktailIngredient(IngredientIdx4, IngredientRatio4, (int)(liquidMaxAmount * (IngredientRatio4 / 100f))));
if (!string.IsNullOrEmpty(IngredientIdx5)) ingredients.Add(new CocktailIngredient(IngredientIdx5, IngredientRatio5, (int)(liquidMaxAmount * (IngredientRatio5 / 100f))));
2024-08-22 10:39:15 +00:00
return ingredients;
}
}
}