+ AiMovement 클래스 재생성 및 초기화 방식 변경 + AnimationController 클래스 초기화 방식 변경 + MapManager, MapController 로직 수정 + BaseBoss 프리팹 수정 + SandMole 보스에 맞게 맵 추가 + 임시 SandMole, GhostBarrel 이미지 추가 + 기존 GroundGreen, GroundRed 스프라이트 정사각형으로 변경, 수정에 따라 BaseMapController Ground, Wall 수정 + 코뿔소 맵 투명화 Props 추가 Closes #12
78 lines
2.2 KiB
C#
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);
|
|
}
|
|
}
|
|
} |