CapersProject/Assets/02.Scripts/Character/Npc/CustomerData.cs
Nam Tae Gun fd688231c2 타이쿤 맵 수정 및 손님 기능 추가
+ 요리 주문 기능 추가
+ Props 프리팹 일부 수정
+ 오늘의 메뉴 기능 연동
2024-07-17 01:05:53 +09:00

64 lines
2.4 KiB
C#

using System;
using BlueWater.Interfaces;
using BlueWater.Items;
using Sirenix.OdinInspector;
using UnityEngine;
using Random = UnityEngine.Random;
namespace BlueWater.Npcs.Customers
{
[Serializable]
public class CustomerData : IIdx
{
[BoxGroup("Json 데이터 영역")]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
public int Idx { get; set; }
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
public string Name { get; set; }
[field: SerializeField, Tooltip("이동속도"), BoxGroup("Json 데이터 영역")]
public int MoveSpeed { get; set; }
[field: SerializeField, Tooltip("음식을 먹는 시간"), BoxGroup("Json 데이터 영역")]
public int EatingTime { get; set; }
[field: SerializeField, Tooltip("음식을 여유롭게 기다리는 시간"), BoxGroup("Json 데이터 영역")]
public int WaitTime { get; set; }
[field: SerializeField, Tooltip("음식을 재촉하는 시간"), BoxGroup("Json 데이터 영역")]
public int HurryTime { get; set; }
[field: SerializeField, Tooltip("기본 만족도"), BoxGroup("Json 데이터 영역")]
public int BaseHappyPoint { get; set; }
[field: SerializeField, Tooltip("선호하는 음식 우선순위1"), BoxGroup("Json 데이터 영역")]
public FoodTaste PreferredFood1 { get; set; }
[field: SerializeField, Tooltip("선호하는 음식 우선순위2"), BoxGroup("Json 데이터 영역")]
public FoodTaste PreferredFood2 { get; set; }
[field: SerializeField, Tooltip("선호하는 음식 우선순위3"), BoxGroup("Json 데이터 영역")]
public FoodTaste PreferredFood3 { get; set; }
[field: SerializeField, Tooltip("음료를 주문할 확률"), BoxGroup("Json 데이터 영역")]
public int OrderBeverageRate { get; set; }
public bool IsOrderedBeverage()
{
var dropChance = Random.Range(0, 101);
return dropChance <= OrderBeverageRate;
}
public FoodTaste GetPreferredFood(int index)
{
return index switch
{
0 => PreferredFood1,
1 => PreferredFood2,
2 => PreferredFood3,
_ => throw new ArgumentOutOfRangeException()
};
}
}
}