CapersProject/Assets/02.Scripts/Map/BossMapController.cs
Nam Tae Gun 51798c3346 #16 SandMole(모래 두더지) 보스 추가 중
+ AiMovement 클래스 재생성 및 초기화 방식 변경
+ AnimationController 클래스 초기화 방식 변경
+ MapManager, MapController 로직 수정
+ BaseBoss 프리팹 수정
+ SandMole 보스에 맞게 맵 추가
+ 임시 SandMole, GhostBarrel 이미지 추가
+ 기존 GroundGreen, GroundRed 스프라이트 정사각형으로 변경, 수정에 따라 BaseMapController Ground, Wall 수정
+ 코뿔소 맵 투명화 Props 추가

Closes #12
2024-06-14 01:46:37 +09:00

78 lines
2.2 KiB
C#

using System.Collections;
using BlueWater.Audios;
using BlueWater.Enemies;
using BlueWater.Enemies.Bosses;
using BlueWater.Uis;
using Sirenix.OdinInspector;
using UnityEngine;
namespace BlueWater.Maps
{
public class BossMapController : MapController
{
[SerializeField, Required]
protected Transform BossSpawnTransform;
[SerializeField]
protected BossType BossType;
public override void InitializeMap()
{
AllDestroyObjects();
if (GameManager.Instance)
{
var player = GameManager.Instance.CurrentCombatPlayer;
if (player)
{
Destroy(player.gameObject);
}
GameManager.Instance.InstantiateCombatPlayer(PlayerSpawnTransform.position);
}
DataManager.Instance.CurrentSaveStage = SaveStage;
if (!string.IsNullOrEmpty(BGMName))
{
AudioManager.Instance.PlayBgm(BGMName);
}
InitializeBoss();
// 보스 override로 추가
}
protected virtual void InitializeBoss()
{
EnemyManager.Instance.InstantiateBoss(BossType, BossSpawnTransform.position, EnemyInstantiateLocation);
}
public override void MapClear()
{
StartCoroutine(nameof(MapClearCoroutine));
}
protected virtual IEnumerator MapClearCoroutine()
{
VisualFeedbackManager.Instance.SetBaseTimeScale(0.1f);
CombatUiManager.Instance.FadeInOut();
var elapsedTime = 0f;
while (elapsedTime <= 3f)
{
elapsedTime += Time.unscaledDeltaTime;
yield return null;
}
AllDestroyEnemy();
VisualFeedbackManager.Instance.SetBaseTimeScale(1f);
elapsedTime = 0f;
while (elapsedTime <= 2f)
{
elapsedTime += Time.unscaledDeltaTime;
yield return null;
}
CombatUiManager.Instance.ClearPopupUi.Open(CombatUiManager.Instance.PopupUiList);
}
}
}