2024-02-12 20:50:24 +00:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
// ReSharper disable once CheckNamespace
|
|
|
|
namespace BlueWaterProject
|
|
|
|
{
|
|
|
|
public class BossController : MonoBehaviour
|
|
|
|
{
|
2024-02-16 09:50:48 +00:00
|
|
|
[field: SerializeField] public FieldBoss FieldBossPrefab { get; set; }
|
2024-02-12 20:50:24 +00:00
|
|
|
[field: SerializeField] public Transform BossSpawnTransform { get; set; }
|
|
|
|
[field: SerializeField] public Transform PlayerSpawnTransform { get; set; }
|
|
|
|
[SerializeField] private Transform bossInstantiateLocation;
|
|
|
|
|
2024-02-16 09:50:48 +00:00
|
|
|
private FieldBoss instantiatedBoss;
|
2024-02-12 20:50:24 +00:00
|
|
|
|
|
|
|
private void Start()
|
|
|
|
{
|
|
|
|
InitStart();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void InitStart()
|
|
|
|
{
|
|
|
|
if (!instantiatedBoss)
|
|
|
|
{
|
2024-02-16 09:50:48 +00:00
|
|
|
instantiatedBoss = Instantiate(FieldBossPrefab, BossSpawnTransform.position, Quaternion.identity, bossInstantiateLocation);
|
2024-02-12 20:50:24 +00:00
|
|
|
}
|
|
|
|
|
2024-02-16 09:50:48 +00:00
|
|
|
instantiatedBoss.gameObject.SetActive(false);
|
2024-02-12 20:50:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public void ResetBoss()
|
|
|
|
{
|
|
|
|
if (instantiatedBoss)
|
|
|
|
{
|
2024-02-16 09:50:48 +00:00
|
|
|
if (instantiatedBoss.gameObject.activeSelf)
|
2024-02-12 20:50:24 +00:00
|
|
|
{
|
2024-02-16 09:50:48 +00:00
|
|
|
Destroy(instantiatedBoss.gameObject);
|
2024-02-12 20:50:24 +00:00
|
|
|
}
|
|
|
|
}
|
2024-02-16 09:50:48 +00:00
|
|
|
|
|
|
|
UiManager.Inst.CombatUi.FieldBossHpSlider.SetActiveHpSlider(false);
|
2024-02-12 20:50:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public void Respawn()
|
|
|
|
{
|
|
|
|
if (instantiatedBoss)
|
|
|
|
{
|
2024-02-16 09:50:48 +00:00
|
|
|
if (instantiatedBoss.gameObject.activeSelf)
|
2024-02-12 20:50:24 +00:00
|
|
|
{
|
2024-02-16 09:50:48 +00:00
|
|
|
Destroy(instantiatedBoss.gameObject);
|
2024-02-12 20:50:24 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
instantiatedBoss.transform.position = BossSpawnTransform.position;
|
2024-02-16 09:50:48 +00:00
|
|
|
instantiatedBoss.gameObject.SetActive(true);
|
2024-02-17 11:26:17 +00:00
|
|
|
UiManager.Inst.CombatUi.FieldBossHpSlider.SetHpSlider(instantiatedBoss.MaxHp, instantiatedBoss.Name);
|
2024-02-12 20:50:24 +00:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-02-16 09:50:48 +00:00
|
|
|
instantiatedBoss = Instantiate(FieldBossPrefab, BossSpawnTransform.position, Quaternion.identity, bossInstantiateLocation);
|
2024-02-17 11:26:17 +00:00
|
|
|
UiManager.Inst.CombatUi.FieldBossHpSlider.SetHpSlider(instantiatedBoss.MaxHp, instantiatedBoss.Name);
|
2024-02-12 20:50:24 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|