OldBlueWater/BlueWater/Assets/02.Scripts/BossController.cs

66 lines
2.3 KiB
C#
Raw Normal View History

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