64 lines
2.3 KiB
C#
64 lines
2.3 KiB
C#
|
|
using Unity.VisualScripting;
|
||
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
public class CurrencyManager : MonoBehaviour, IBootLoader, IBase, IDataLoader
|
||
|
|
{
|
||
|
|
public GameCurrencyData gameCurrencyData;
|
||
|
|
public UserCurrencyData userCurrencyData;
|
||
|
|
private InGameUIManager inGameUIManager;
|
||
|
|
private UserDataBehaviour userDataBehaviour;
|
||
|
|
private ScreenManager screenManager;
|
||
|
|
private GlobalHUDScreen globalHUDScreen;
|
||
|
|
|
||
|
|
public void Initialize()
|
||
|
|
{
|
||
|
|
InterfaceManager.Instance?.RegisterInterface<CurrencyManager>(this);
|
||
|
|
|
||
|
|
userDataBehaviour = InterfaceManager.Instance?.GetInterfaceInstance<UserDataBehaviour>();
|
||
|
|
}
|
||
|
|
|
||
|
|
public void InitializeData()
|
||
|
|
{
|
||
|
|
Debug.Log($"USERDATA: Initialize Data for currency system");
|
||
|
|
|
||
|
|
gameCurrencyData = userDataBehaviour.GetGameCurrencyData();
|
||
|
|
userCurrencyData = userDataBehaviour.GetUserCurrencyData();
|
||
|
|
|
||
|
|
screenManager = InterfaceManager.Instance?.GetInterfaceInstance<ScreenManager>();
|
||
|
|
globalHUDScreen = screenManager.GetScreen<GlobalHUDScreen>(ScreenType.GlobalHUDScreen);
|
||
|
|
|
||
|
|
Debug.Log($"userCurrencyData.attainedCurrency: {userCurrencyData.attainedCurrency}");
|
||
|
|
globalHUDScreen.UpdateCurrencyText($"{userCurrencyData.attainedCurrency}");
|
||
|
|
|
||
|
|
Debug.Log($"userDataBehaviour.IsFirstUserSession(): {userDataBehaviour.IsFirstUserSession()}");
|
||
|
|
if (userDataBehaviour.IsFirstUserSession())
|
||
|
|
AddCurrency(gameCurrencyData.initialCurrencyToProvide);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void AddCurrency(int addAmt)
|
||
|
|
{
|
||
|
|
userCurrencyData.attainedCurrency += addAmt;
|
||
|
|
UpdateCurrencyData();
|
||
|
|
}
|
||
|
|
|
||
|
|
public void WithdrawCurrency(int withdrawAmt)
|
||
|
|
{
|
||
|
|
userCurrencyData.attainedCurrency -= withdrawAmt;
|
||
|
|
UpdateCurrencyData();
|
||
|
|
}
|
||
|
|
|
||
|
|
public void UpdateCurrencyData()
|
||
|
|
{
|
||
|
|
Debug.Log($"Updated currency data userCurrencyData.attainedCurrency: {userCurrencyData.attainedCurrency}");
|
||
|
|
globalHUDScreen.UpdateCurrencyText($"{userCurrencyData.attainedCurrency}");
|
||
|
|
userDataBehaviour.SaveUserCurrencyData(userCurrencyData);
|
||
|
|
}
|
||
|
|
|
||
|
|
public bool HasEnoughCurrency(int availCurrency)
|
||
|
|
{
|
||
|
|
Debug.Log($"HasEnoughCurrency: {availCurrency} <= {userCurrencyData.attainedCurrency}");
|
||
|
|
return availCurrency <= userCurrencyData.attainedCurrency;
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|