83 lines
2.5 KiB
C#
83 lines
2.5 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class SummonsUnit : MonoBehaviour
|
|
{
|
|
public bool isEnemy;
|
|
public List<BuildingInfo> buildings;
|
|
public int campHp;
|
|
|
|
public int[] addMoney;
|
|
|
|
private void Awake()
|
|
{
|
|
buildings = new List<BuildingInfo>();
|
|
campHp = 500;
|
|
buildings.Add(new BuildingInfo());
|
|
buildings.Add(new BuildingInfo());
|
|
buildings.Add(new BuildingInfo());
|
|
buildings.Add(new BuildingInfo());
|
|
buildings.Add(new BuildingInfo());
|
|
addMoney = new int[5];
|
|
for(int n = 0; n < addMoney.Length; n++)
|
|
{
|
|
addMoney[n] = 100;
|
|
}
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
if (isEnemy)
|
|
PlayCtrl.Instance.enemy = this;
|
|
else
|
|
PlayCtrl.Instance.player = this;
|
|
|
|
////테스트용
|
|
//if (isEnemy)
|
|
//{
|
|
// List<UnitCtrl> units = new List<UnitCtrl>();
|
|
// for (int m = 0; m < 5; m++)
|
|
// {
|
|
// units.Add(Statics.units["AxeGoblin"].GetComponent<UnitCtrl>());
|
|
// }
|
|
// buildings[0].units = units;
|
|
//}
|
|
}
|
|
|
|
public void Summons(int count)
|
|
{
|
|
BuildingInfo buildingInfo = buildings[count];
|
|
int listCount;
|
|
if (buildingInfo.units == null)
|
|
return;
|
|
else
|
|
listCount = buildingInfo.units.Count;
|
|
|
|
for (int n = 0; n < listCount; n++)
|
|
{
|
|
float pos = Random.Range(-3.7f, -0.3f);
|
|
if (isEnemy) //적소환
|
|
Instantiate(buildingInfo.units[n].gameObject, new Vector3(Random.Range(44.0f, 46.0f), pos, pos + 3.8f), Quaternion.identity).GetComponent<UnitCtrl>().isEnemy = isEnemy;
|
|
else //아군 유닛 소환
|
|
Instantiate(buildingInfo.units[n].gameObject, new Vector3(Random.Range(-44.0f, -46.0f), pos, pos + 3.8f), Quaternion.identity).GetComponent<UnitCtrl>().isEnemy = isEnemy;
|
|
}
|
|
if (!isEnemy)//자원 생성
|
|
{
|
|
PlayCtrl.Instance.TextUpdate(addMoney[count]);
|
|
}
|
|
}
|
|
|
|
public void EnemyStageSet(int stage)
|
|
{
|
|
List<AI> ai = Statics.excelDatas.GamestageAIList(Statics.chapter, stage);
|
|
for(int n = 0; n < ai.Count; n++)
|
|
{
|
|
int wave = ai[n].position / 10;
|
|
//int pos = ai[n].position % 10;
|
|
buildings[wave].units.Add(Statics.units[ai[n].unit].GetComponent<UnitCtrl>());
|
|
//if (ai[n].command.Equals(eCommand.add))
|
|
//units.Add();
|
|
}
|
|
}
|
|
}
|