Files
Ultimate-Fishing-Simulator-…/Assets/Scripts/Assembly-CSharp/PlayerProfileManager.cs
2026-03-04 09:37:33 +08:00

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);
}
}