93 lines
2.3 KiB
C#
93 lines
2.3 KiB
C#
using Michsky.UI.Heat;
|
|
using Obvious.Soap;
|
|
using UFS3;
|
|
using UFS3.Management;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
public class PlayerProfileManager : Singleton<PlayerProfileManager>
|
|
{
|
|
public ScriptableEventNoParam OnGearDamaged;
|
|
|
|
public ScriptableEventInt OnSellFishFromNetClick;
|
|
|
|
public ScriptableEventItemData OnSellItemFromInventory;
|
|
|
|
public PlayerProfile PlayerProfile;
|
|
|
|
public ScriptableEventItemData OnAssignItem;
|
|
|
|
public UnityEvent OnClearProfile = new UnityEvent();
|
|
|
|
public UnityEvent OnMorePlayerProfilesExists;
|
|
|
|
[Tooltip("It's usable only for tests in editor beacuse we can load player profiles on start gameplay")]
|
|
public bool LoadProfileOnStart;
|
|
|
|
public ModalWindowManager modalWindowManager;
|
|
|
|
private void Start()
|
|
{
|
|
if (LoadProfileOnStart)
|
|
{
|
|
PlayerProfile.ItemDatabase.ValidateIDs();
|
|
}
|
|
PlayerProfile.FishDatabase.ValidateIDs();
|
|
}
|
|
|
|
public void ProfileLoad()
|
|
{
|
|
if (!PlayerPrefs.HasKey("PlayerLastProfileLoaded"))
|
|
{
|
|
Debug.Log("No player last profile loaded, should be first game played if not check why it's does");
|
|
}
|
|
string text = PlayerPrefs.GetString("PlayerLastProfileLoaded", "Angler");
|
|
if (!PlayerProfile.LoadData(text))
|
|
{
|
|
Debug.Log("No player profile loaded, try create new from menu");
|
|
}
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
OnAssignItem.OnRaised += OnAssignItemOnOnRaised;
|
|
OnSellFishFromNetClick.OnRaised += OnSellFishFromNetOnOnRaised;
|
|
OnGearDamaged.OnRaised += OnGearDamagedOnOnRaised;
|
|
OnSellItemFromInventory.OnRaised += OnSellItemFromInventory_OnRaised;
|
|
}
|
|
|
|
private void OnGearDamagedOnOnRaised()
|
|
{
|
|
foreach (BaseItemData item in PlayerProfile.Inventory)
|
|
{
|
|
if (item.Durabilty <= 0f)
|
|
{
|
|
PlayerProfile.Inventory.Remove(item);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
OnSellItemFromInventory.OnRaised -= OnSellItemFromInventory_OnRaised;
|
|
OnAssignItem.OnRaised -= OnAssignItemOnOnRaised;
|
|
OnSellFishFromNetClick.OnRaised -= OnSellFishFromNetOnOnRaised;
|
|
OnGearDamaged.OnRaised -= OnGearDamagedOnOnRaised;
|
|
}
|
|
|
|
private void OnSellFishFromNetOnOnRaised(int id)
|
|
{
|
|
PlayerProfile.SellFish(id);
|
|
}
|
|
|
|
private void OnSellItemFromInventory_OnRaised(BaseItemData item)
|
|
{
|
|
PlayerProfile.SellItemFromInventory(item);
|
|
}
|
|
|
|
private void OnAssignItemOnOnRaised(BaseItemData obj)
|
|
{
|
|
PlayerProfile.Inventory.Remove(obj);
|
|
}
|
|
}
|