OneShotOneKill/Assets/Script/InGame/IngameMgr.cs

65 lines
1.8 KiB
C#

using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class IngameMgr : MonoBehaviour
{
public TextMeshProUGUI[] texts_money; // 0 코인, 1 아이템, 2 웨이브
public Text t_timer, t_hp, t_exp;
public Slider slider_wave, slider_exp;
int m_Wave, m_HP, m_Coin, m_Item, m_Lv, m_Exp;
StageConfigTableData CurStageData;
private void OnEnable()
{
CurStageData = table_stageconfig.Ins.Get_Data(10001);
var unitdata = table_unit.Ins.Get_Data(1000);
m_HP = unitdata.n_DefaultHp;
m_Lv = m_Wave = 1;
m_Exp = m_Coin = m_Item = 0;
Set_Texts();
StartCoroutine(Co_MakeMob());
}
void Set_Texts()
{
texts_money[0].text = m_Coin.ToString();
texts_money[1].text = m_Item.ToString();
texts_money[2].text = $"Wave {m_Wave}/{CurStageData.n_MaxWave}";
slider_wave.value = ((m_Wave - 1) / (float)CurStageData.n_MaxWave);
t_hp.text = m_HP.ToString();
slider_exp.value = 0f;
}
IEnumerator Co_MakeMob()
{
var wavedata = table_wavepattern.Ins.Get_Data(CurStageData.n_WavePatternGroupID, m_Wave);
if (wavedata == null)
{ // 클리어
yield break;
}
// 일반 몬스터 생성
int meleemobcount = 0, rangemobcount = 0;
var totalmobcount = wavedata.n_AppearMeleeMonster + wavedata.n_AppearRangeMonster;
for (int i = 0; i < totalmobcount; i++)
{
yield return new WaitForSeconds(wavedata.f_AppearDelay);
for (int j = 0; j < wavedata.n_OverlapUnitCount; j++)
{ // 근거리 or 원거리 몹 생성 후 카운팅
}
}
yield return new WaitForSeconds(wavedata.f_NextWaveDelay);
++m_Wave;
Set_Texts();
StartCoroutine(Co_MakeMob());
}
}