Scriptum/Assets/Scripts/SceneManager/SaveDynamicObjects.cs
kabix09 35ed59b247 Thugs - behaviour fix
Use pathfinding algorithm
2023-01-04 21:23:02 +01:00

97 lines
2.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
using UnityEngine.SceneManagement;
public class SaveDynamicObjects : MonoBehaviour
{
public void Save()
{
//saving player position
var player = GameObject.FindGameObjectWithTag("Player");
player.GetComponent<PlayerPosition>().SavePosition();
player.GetComponent<Player>().SaveCheckpoint();
SaveElementsByScene();
}
public void SaveElementsByScene()
{
switch(SceneManager.GetActiveScene().name)
{
case "SampleScene":
{
SaveSampleScene();
break;
}
case "CaveEntrance":
{
break;
}
case "WizardHouse":
{
//TODO dynamic elements if added
break;
}
case "OutsideWizardsHouse":
{
//TODO dynamic elements if added
break;
}
default:
{
Debug.Log("Niedopasowano sceny podczaas zapisu dynamicznych elementow");
break;
}
}
}
//TODO get list of elemnts from each scene individually - don't describe here each one manually !!!
private void SaveSampleScene()
{
//Saving Thugs from Cave/SampleScene
List<ThugModel> thugs = GameObject.Find("NPCManager").GetComponent<NPCManager>().thugs;
foreach (var thug in thugs)
{
var ThugFromScene = GameObject.FindObjectsOfType<GameObject>(true).Where(sr => sr.gameObject.name == thug.name).ToArray()[0];
if (ThugFromScene != null)
{
ThugFromScene.GetComponent<Enemy>().SaveCheckpoint();
}
else
{
if (OnMapAppearanceMethod.IsNewGame())
{
PlayerPrefs.SetInt(thug.name + "-S", 0);
}
else
{
PlayerPrefs.SetInt(thug.name + "-S", 1);
}
}
}
//saving bossThug
ThugModel bossThug = GameObject.Find("NPCManager").GetComponent<NPCManager>().bossThug;
var BossThugFromScene = GameObject.FindObjectsOfType<GameObject>(true).Where(sr => sr.gameObject.name == bossThug.name).ToArray()[0];
if (BossThugFromScene != null)
{
BossThugFromScene.GetComponent<Enemy>().SaveCheckpoint();
}
else
{
if (OnMapAppearanceMethod.IsNewGame())
{
PlayerPrefs.SetInt(bossThug.name + "-S", 0);
}
else
{
PlayerPrefs.SetInt(bossThug.name + "-S", 1);
}
}
}
}