Project_WL/Assets/Script/Map/FieldBossData.cs

53 lines
1.9 KiB
C#
Raw Normal View History

using System.Collections;
2024-12-15 01:39:39 +00:00
using UnityEngine;
public class FieldBossData : MyCoroutine
{
public bool isChapterBoss;
2024-12-15 01:39:39 +00:00
public int n_MonsterID, n_SpawnerId;
public float RegenTime = 10f;
2024-12-15 01:39:39 +00:00
MobActor m_FieldBoss;
private void Start()
{
// 필드 몬스터 생성
var fieldbossdata = table_monsterlist.Ins.Get_Data_orNull(n_MonsterID);
AddrResourceMgr.Ins.LoadObject<GameObject>(fieldbossdata.s_MonsterPrefab, handle =>
{
m_FieldBoss = DSUtil.Get_Clone<MobActor>(handle.Result, transform);
AddrResourceMgr.Ins.Set_AddressableReleaseSelf(m_FieldBoss.gameObject);
m_FieldBoss.Set(true, null, null, n_SpawnerId, false);
m_FieldBoss.Set(fieldbossdata, transform.position, AfterDie, -1);
2025-02-19 04:56:56 +00:00
m_FieldBoss.On_Regen();
2024-12-15 01:39:39 +00:00
m_FieldBoss.MagicID = 0;
ActorInfo.Ins.Add_Actor(m_FieldBoss, eRole.Mob, n_SpawnerId, fieldbossdata.s_MonsterPrefab);
2024-12-15 01:39:39 +00:00
});
}
private void AfterDie(int obj)
{
Set_Coroutine(() => { m_FieldBoss.On_Regen(); }, RegenTime);
if (isChapterBoss)
{
// 챕터 보스 처치 후 다음 챕터로 가는 포탈 열기
var sdata = ServerInfo.Ins.m_ServerData;
var mapData = MyValue.MyChoiceMapData;
sdata.MapData_SetClearChapter(mapData.n_MapID, mapData.n_Difficult);
StartCoroutine(Co_Cam());
}
2024-12-15 01:39:39 +00:00
}
IEnumerator Co_Cam()
{
// 이동 불가능 -> 포탈로 카메라 회전 -> 포탈 활성화 -> 이동 가능
OptionInfo.Ins.Set_PCMove(MyValue.MyPC, false);
yield return new WaitForSeconds(0.5f);
2025-03-10 07:15:28 +00:00
MyValue.m_RealCamera.Set_TargetShow(MapData.Ins.m_ChapterPortal.go_nextchapter.transform);
yield return new WaitForSeconds(1f);
2025-03-10 07:15:28 +00:00
MapData.Ins.m_ChapterPortal.Set_NextChapter(true);
yield return new WaitForSeconds(1f);
OptionInfo.Ins.Set_PCMove(MyValue.MyPC, true);
}
2024-12-15 01:39:39 +00:00
}