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

225 lines
7.8 KiB
C#
Raw Normal View History

2024-09-23 02:00:21 +00:00
using System;
using Sirenix.OdinInspector;
using UnityEngine;
namespace BlueWater.Tycoons
{
[Serializable]
public class TycoonStatus
{
[SerializeField]
private int _maxPlayerHealth;
public int MaxPlayerHealth
{
get
{
_maxPlayerHealth = GameManager.Instance.CurrentTycoonPlayer.PlayerHealthPoint.MaxHealthPoint;
return _maxPlayerHealth;
}
set
{
_maxPlayerHealth = value;
GameManager.Instance.CurrentTycoonPlayer.PlayerHealthPoint.SetMaxHealthPoint(value);
}
}
[SerializeField]
private int _currentPlayerHealth;
public int CurrentPlayerHealth
{
get
{
_currentPlayerHealth = GameManager.Instance.CurrentTycoonPlayer.PlayerHealthPoint.CurrentHealthPoint;
return _currentPlayerHealth;
}
set
{
_currentPlayerHealth = value;
GameManager.Instance.CurrentTycoonPlayer.PlayerHealthPoint.SetCurrentHealthPoint(value);
}
}
[SerializeField]
private float _playerMoveSpeedMultiplier;
public float PlayerMoveSpeedMultiplier
{
get
{
_playerMoveSpeedMultiplier = GameManager.Instance.CurrentTycoonPlayer.TycoonMovement.MoveSpeedMultiplier;
return _playerMoveSpeedMultiplier;
}
set
{
_playerMoveSpeedMultiplier = value;
GameManager.Instance.CurrentTycoonPlayer.TycoonMovement.SetMoveSpeedMultiplier(value);
}
}
// 보류
[SerializeField]
private int _currentExp;
public int CurrentExp
{
get
{
return _currentExp;
}
set
{
_currentExp = value;
}
}
// 보류
[SerializeField]
private int _currentGold;
[Title("원액")]
[SerializeField]
private int _currentLiquidAmountA;
public int CurrentLiquidAmountA
{
get
{
_currentLiquidAmountA = TycoonManager.Instance.TycoonIngredientController.LiquidBarrelA.CurrentAmount;
return _currentLiquidAmountA;
}
set
{
_currentLiquidAmountA = value;
TycoonManager.Instance.TycoonIngredientController.LiquidBarrelA.SetCurrentAmount(value, true);
}
}
[SerializeField]
private int _currentLiquidAmountB;
public int CurrentLiquidAmountB
{
get
{
_currentLiquidAmountB = TycoonManager.Instance.TycoonIngredientController.LiquidBarrelB.CurrentAmount;
return _currentLiquidAmountB;
}
set
{
_currentLiquidAmountB = value;
TycoonManager.Instance.TycoonIngredientController.LiquidBarrelB.SetCurrentAmount(value, true);
}
}
[SerializeField]
private int _currentLiquidAmountC;
public int CurrentLiquidAmountC
{
get
{
_currentLiquidAmountC = TycoonManager.Instance.TycoonIngredientController.LiquidBarrelC.CurrentAmount;
return _currentLiquidAmountC;
}
set
{
_currentLiquidAmountC = value;
TycoonManager.Instance.TycoonIngredientController.LiquidBarrelC.SetCurrentAmount(value, true);
}
}
[SerializeField]
private int _currentLiquidAmountD;
public int CurrentLiquidAmountD
{
get
{
_currentLiquidAmountD = TycoonManager.Instance.TycoonIngredientController.LiquidBarrelD.CurrentAmount;
return _currentLiquidAmountD;
}
set
{
_currentLiquidAmountD = value;
TycoonManager.Instance.TycoonIngredientController.LiquidBarrelD.SetCurrentAmount(value, true);
}
}
[SerializeField]
private int _currentLiquidAmountE;
public int CurrentLiquidAmountE
{
get
{
_currentLiquidAmountE = TycoonManager.Instance.TycoonIngredientController.LiquidBarrelE.CurrentAmount;
return _currentLiquidAmountE;
}
set
{
_currentLiquidAmountE = value;
TycoonManager.Instance.TycoonIngredientController.LiquidBarrelE.SetCurrentAmount(value, true);
}
}
[Title("가니쉬")]
[SerializeField]
private int _currentGarnishAmount1;
public int CurrentGarnishAmount1
{
get
{
_currentGarnishAmount1 = TycoonManager.Instance.TycoonIngredientController.GarnishBarrel1.CurrentAmount;
return _currentGarnishAmount1;
}
set
{
_currentGarnishAmount1 = value;
TycoonManager.Instance.TycoonIngredientController.GarnishBarrel1.SetCurrentAmount(value, true);
}
}
[SerializeField]
private int _currentGarnishAmount2;
public int CurrentGarnishAmount2
{
get
{
_currentGarnishAmount2 = TycoonManager.Instance.TycoonIngredientController.GarnishBarrel2.CurrentAmount;
return _currentGarnishAmount2;
}
set
{
_currentGarnishAmount2 = value;
TycoonManager.Instance.TycoonIngredientController.GarnishBarrel2.SetCurrentAmount(value, true);
}
}
public void Initialize()
{
MaxPlayerHealth = GameManager.Instance.CurrentTycoonPlayer.PlayerHealthPoint.MaxHealthPoint;
CurrentPlayerHealth = GameManager.Instance.CurrentTycoonPlayer.PlayerHealthPoint.CurrentHealthPoint;
PlayerMoveSpeedMultiplier = GameManager.Instance.CurrentTycoonPlayer.TycoonMovement.MoveSpeedMultiplier;
var ingredientController = TycoonManager.Instance.TycoonIngredientController;
ingredientController.LiquidBarrelA.OnAmountChanged += UpdateLiquidA;
ingredientController.LiquidBarrelB.OnAmountChanged += UpdateLiquidB;
ingredientController.LiquidBarrelC.OnAmountChanged += UpdateLiquidC;
ingredientController.LiquidBarrelD.OnAmountChanged += UpdateLiquidD;
ingredientController.LiquidBarrelE.OnAmountChanged += UpdateLiquidE;
}
private void OnDestroy()
{
var ingredientController = TycoonManager.Instance.TycoonIngredientController;
if (ingredientController != null)
{
ingredientController.LiquidBarrelA.OnAmountChanged -= UpdateLiquidA;
ingredientController.LiquidBarrelB.OnAmountChanged -= UpdateLiquidB;
ingredientController.LiquidBarrelC.OnAmountChanged -= UpdateLiquidC;
ingredientController.LiquidBarrelD.OnAmountChanged -= UpdateLiquidD;
ingredientController.LiquidBarrelE.OnAmountChanged -= UpdateLiquidE;
}
}
private void UpdateLiquidA(int amount) => CurrentLiquidAmountA = amount;
private void UpdateLiquidB(int amount) => CurrentLiquidAmountB = amount;
private void UpdateLiquidC(int amount) => CurrentLiquidAmountC = amount;
private void UpdateLiquidD(int amount) => CurrentLiquidAmountD = amount;
private void UpdateLiquidE(int amount) => CurrentLiquidAmountE = amount;
}
}