CapersProject/Assets/02.Scripts/Tycoon/TycoonManager.cs

104 lines
3.4 KiB
C#
Raw Normal View History

2024-07-08 06:02:12 +00:00
using System;
2024-09-09 09:50:37 +00:00
using System.Collections.Generic;
using System.Linq;
using BlueWater.Audios;
using UnityEngine;
using Sirenix.OdinInspector;
2024-09-12 04:17:34 +00:00
namespace BlueWater.Tycoons
{
public class TycoonManager : Singleton<TycoonManager>
{
2024-09-12 04:17:34 +00:00
[field: Title("캐릭터 스테이터스")]
[field: SerializeField, CLabel("최대 체력")]
public int MaxHeart { get; set; } = 3;
[field: SerializeField, CLabel("현재 체력")]
private int CurrentHeart;
[field: SerializeField, CLabel("무적")]
public bool Invincibility = false;
public int _CurrentHeart { get => CurrentHeart; set { if (!Invincibility) { CurrentHeart = value;}}}
[field: SerializeField, CLabel("이동 속도")]
public float Chracter_Speed { get; set; } = 1.0f;
[field: Title("음식 스테이터스")]
[field: SerializeField, CLabel("Liquid A")]
public int LiquidA { get; set; } = 1000;
[field: SerializeField, CLabel("Liquid B")]
public int LiquidB { get; set; } = 1000;
[field: SerializeField, CLabel("Liquid C")]
public int LiquidC { get; set; } = 1000;
[field: SerializeField, CLabel("Liquid D")]
public int LiquidD { get; set; } = 1000;
[field: SerializeField, CLabel("Liquid E")]
public int LiquidE { get; set; } = 1000;
[field: SerializeField, CLabel("Garnish A")]
public int GarnishA { get; set; } = 1000;
[field: SerializeField, CLabel("Garnish B")]
public int GarnishB { get; set; } = 1000;
[field: Title("컴포넌트")]
[field: SerializeField]
public CustomerTableController CustomerTableController { get; private set; }
[field: SerializeField]
public TycoonStageController TycoonStageController { get; private set; }
2024-07-08 06:02:12 +00:00
[SerializeField]
private string _dailyBgm;
2024-07-22 00:44:38 +00:00
2024-09-12 07:36:24 +00:00
[field: SerializeField, Required]
public LevelDataSo LevelDataSo { get; private set; }
2024-09-09 09:50:37 +00:00
2024-09-12 07:36:24 +00:00
[field: SerializeField, Required]
public CardDataSo CardDataSo { get; private set; }
2024-09-12 04:17:34 +00:00
public Action OnTycoonOpenedEvent;
public Action OnTycoonClosedEvent;
2024-09-12 04:17:34 +00:00
protected override void OnAwake()
{
InitializeComponents();
}
private void Start()
{
if (!string.IsNullOrEmpty(_dailyBgm))
{
AudioManager.Instance.PlayBgm(_dailyBgm);
}
}
[Button("컴포넌트 초기화")]
private void InitializeComponents()
{
CustomerTableController = GetComponent<CustomerTableController>();
TycoonStageController = GetComponent<TycoonStageController>();
}
2024-09-12 04:17:34 +00:00
2024-09-09 09:50:37 +00:00
private Dictionary<string, T> InitializeDictionary<T>(List<T> dataList, Func<T, string> keySelector)
{
return dataList.ToDictionary(keySelector);
}
public T GetDataByIdx<T>(Dictionary<string, T> dataDictionary, string idx) where T : class
{
if (dataDictionary.TryGetValue(idx, out var data))
return data;
Debug.LogError($"{idx}와 일치하는 아이템이 없습니다.");
return null;
}
2024-09-12 04:17:34 +00:00
public int GetTotalItemCount<T>(Dictionary<string, T> dataDictionary)
{
return dataDictionary.Count;
}
}
}