63 lines
1.8 KiB
C#
63 lines
1.8 KiB
C#
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Script to reset player stuf like
|
||
|
/// - missions list
|
||
|
/// - items
|
||
|
/// - equipment
|
||
|
/// - health
|
||
|
/// - exp
|
||
|
/// </summary>
|
||
|
public class ResetPlayer : MonoBehaviour
|
||
|
{
|
||
|
public bool isAfterReset = false;
|
||
|
|
||
|
void Update()
|
||
|
{
|
||
|
if (!isAfterReset)
|
||
|
ResetPlayerData();
|
||
|
}
|
||
|
|
||
|
void ResetPlayerData()
|
||
|
{
|
||
|
if (
|
||
|
EquipmentDataManager.Instance == null ||
|
||
|
SceneInventoryDataManager.Instance == null ||
|
||
|
SceneTaskDataManager.Instance == null
|
||
|
) return;
|
||
|
|
||
|
if (PlayerPrefs.GetString("gateway.sourceMapName") == "SampleScene")
|
||
|
{
|
||
|
isAfterReset = true;
|
||
|
|
||
|
// Clear panels data
|
||
|
EquipmentDataManager.Instance.ClearListOfElements();
|
||
|
SceneInventoryDataManager.Instance.ClearListOfElements();
|
||
|
SceneTaskDataManager.Instance.ClearListOfElements();
|
||
|
|
||
|
var saveController = GameObject.FindObjectOfType<SaveController>();
|
||
|
|
||
|
saveController.SavePlayerEquipmentItems();
|
||
|
saveController.SavePlayerInventory();
|
||
|
saveController.SavePlayerQuests();
|
||
|
|
||
|
// Player reset lvl, exp & health
|
||
|
var playerAgent = GameObject.FindGameObjectWithTag("Player");
|
||
|
|
||
|
playerAgent.GetComponent<Player>().currentHealth = PlayerPrefs.GetFloat("maxHealth");
|
||
|
PlayerPrefs.SetFloat("health-S", PlayerPrefs.GetFloat("maxHealth"));
|
||
|
PlayerPrefs.SetFloat("health", PlayerPrefs.GetFloat("maxHealth"));
|
||
|
|
||
|
playerAgent.GetComponent<Player>().exp = 0;
|
||
|
PlayerPrefs.SetFloat("exp-S", 0);
|
||
|
|
||
|
playerAgent.GetComponent<Player>().lvl = 1;
|
||
|
PlayerPrefs.SetInt("lvl-S", 1);
|
||
|
|
||
|
playerAgent.GetComponent<Player>().SaveCheckpoint();
|
||
|
}
|
||
|
}
|
||
|
}
|