|
@@ -55,7 +55,7 @@ public class EnemyCreater : MonoBehaviour
|
|
|
{
|
|
{
|
|
|
for (int i = 0; i < cfgCreateEnemy.Count; i++)
|
|
for (int i = 0; i < cfgCreateEnemy.Count; i++)
|
|
|
{
|
|
{
|
|
|
- if(cfgCreateEnemy[i].BuildingID == 0)
|
|
|
|
|
|
|
+ if(cfgCreateEnemy[i].Time != 0)
|
|
|
{
|
|
{
|
|
|
if (cfgCreateEnemy[i].Time <= gameTime && !createdEnemy[i])
|
|
if (cfgCreateEnemy[i].Time <= gameTime && !createdEnemy[i])
|
|
|
{
|
|
{
|
|
@@ -69,8 +69,17 @@ public class EnemyCreater : MonoBehaviour
|
|
|
buildingDic.TryGetValue(cfgCreateEnemy[i].BuildingID, out result);
|
|
buildingDic.TryGetValue(cfgCreateEnemy[i].BuildingID, out result);
|
|
|
if (result != null)
|
|
if (result != null)
|
|
|
{
|
|
{
|
|
|
|
|
+ //根据防御塔血量出怪
|
|
|
EnemyTower enemyTower = result.GetComponent<EnemyTower>();
|
|
EnemyTower enemyTower = result.GetComponent<EnemyTower>();
|
|
|
- if (enemyTower.hp * 100 <= enemyTower.totalHp * cfgCreateEnemy[i].BuildingHP && !createdEnemy[i])
|
|
|
|
|
|
|
+ if (enemyTower!= null && !createdEnemy[i] && enemyTower.hp * 100 <= enemyTower.totalHp * cfgCreateEnemy[i].BuildingHP)
|
|
|
|
|
+ {
|
|
|
|
|
+ createdEnemy[i] = true;
|
|
|
|
|
+ StartCreateEnemy(i);
|
|
|
|
|
+ }
|
|
|
|
|
+ //根据传送门血量出怪
|
|
|
|
|
+ CoreCharacter coreCharacter = result.GetComponentInChildren<CoreCharacter>();
|
|
|
|
|
+ PortalsCreater portalsCreater = result.GetComponent<PortalsCreater>();
|
|
|
|
|
+ if(coreCharacter != null && !createdEnemy[i] && portalsCreater.createTimeCountDown<0 && coreCharacter.hp * 100 <= coreCharacter.totalHp * cfgCreateEnemy[i].BuildingHP)
|
|
|
{
|
|
{
|
|
|
createdEnemy[i] = true;
|
|
createdEnemy[i] = true;
|
|
|
StartCreateEnemy(i);
|
|
StartCreateEnemy(i);
|
|
@@ -89,7 +98,7 @@ public class EnemyCreater : MonoBehaviour
|
|
|
createdBuilding[i] = true;
|
|
createdBuilding[i] = true;
|
|
|
if (gameTime < portalsCreateTime)
|
|
if (gameTime < portalsCreateTime)
|
|
|
{
|
|
{
|
|
|
- StartCreateBuilding(i, cfgCreateBuilding[i].Time);
|
|
|
|
|
|
|
+ StartCreateBuilding(i, cfgCreateBuilding[i].Time - gameTime );
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
@@ -108,14 +117,7 @@ public class EnemyCreater : MonoBehaviour
|
|
|
if (enemyTower.hp * 100 <= enemyTower.totalHp * cfgCreateBuilding[i].RefreshBuildingHP && !createdBuilding[i])
|
|
if (enemyTower.hp * 100 <= enemyTower.totalHp * cfgCreateBuilding[i].RefreshBuildingHP && !createdBuilding[i])
|
|
|
{
|
|
{
|
|
|
createdBuilding[i] = true;
|
|
createdBuilding[i] = true;
|
|
|
- if (gameTime < portalsCreateTime)
|
|
|
|
|
- {
|
|
|
|
|
- StartCreateBuilding(i, cfgCreateBuilding[i].Time);
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- StartCreateBuilding(i, portalsCreateTime);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ StartCreateBuilding(i, portalsCreateTime);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -134,7 +136,7 @@ public class EnemyCreater : MonoBehaviour
|
|
|
{
|
|
{
|
|
|
case 0:
|
|
case 0:
|
|
|
List<float> pos = singleCreateBuilding.Position.Concat(singleCreateBuilding.Position1).ToList();
|
|
List<float> pos = singleCreateBuilding.Position.Concat(singleCreateBuilding.Position1).ToList();
|
|
|
- CreatePortal(singleCreateBuilding.BuildingID, pos, singleCreateBuilding.Scale, singleCreateBuilding.HPRatio, createTime);
|
|
|
|
|
|
|
+ CreatePortal(singleCreateBuilding.ID, singleCreateBuilding.BuildingID, pos, singleCreateBuilding.Scale, singleCreateBuilding.HPRatio, createTime);
|
|
|
break;
|
|
break;
|
|
|
case 1:
|
|
case 1:
|
|
|
Vector3 positon = new Vector3(singleCreateBuilding.Position[0], singleCreateBuilding.Position[1], singleCreateBuilding.Position[2]);
|
|
Vector3 positon = new Vector3(singleCreateBuilding.Position[0], singleCreateBuilding.Position[1], singleCreateBuilding.Position[2]);
|
|
@@ -164,9 +166,16 @@ public class EnemyCreater : MonoBehaviour
|
|
|
+ Random.Range(-singleCreateEnemy.ZRandomRange / 2, singleCreateEnemy.ZRandomRange / 2));
|
|
+ Random.Range(-singleCreateEnemy.ZRandomRange / 2, singleCreateEnemy.ZRandomRange / 2));
|
|
|
break;
|
|
break;
|
|
|
case 1:
|
|
case 1:
|
|
|
- pos = buildingDic[singleCreateEnemy.BuildingID].transform.position;
|
|
|
|
|
|
|
+ GameObject building = buildingDic[singleCreateEnemy.BuildingID];
|
|
|
|
|
+ pos = building.transform.position;
|
|
|
pos.y += Random.Range(0, singleCreateEnemy.YRandomRange);
|
|
pos.y += Random.Range(0, singleCreateEnemy.YRandomRange);
|
|
|
pos.z += Random.Range(0, singleCreateEnemy.ZRandomRange);
|
|
pos.z += Random.Range(0, singleCreateEnemy.ZRandomRange);
|
|
|
|
|
+ PortalsCreater portalsCreater = building.GetComponent<PortalsCreater>();
|
|
|
|
|
+ if (portalsCreater != null)
|
|
|
|
|
+ {
|
|
|
|
|
+ portalsCreater.enemyNumber -= 1;
|
|
|
|
|
+ portalsCreater.enemyNumberText.text = portalsCreater.enemyNumber.ToString();
|
|
|
|
|
+ }
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
CreateEnemy(singleCreateEnemy.EnemyID, pos, singleCreateEnemy.HPRatio, singleCreateEnemy.AttackRatio);
|
|
CreateEnemy(singleCreateEnemy.EnemyID, pos, singleCreateEnemy.HPRatio, singleCreateEnemy.AttackRatio);
|
|
@@ -188,19 +197,17 @@ public class EnemyCreater : MonoBehaviour
|
|
|
enemyTower.attack1Infos[0] = attackInfo;
|
|
enemyTower.attack1Infos[0] = attackInfo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void CreatePortal(int buildingID, List<float> pos, List<float> scale, float hpRatio, float createTime)
|
|
|
|
|
|
|
+ public void CreatePortal(int ID, int buildingID, List<float> pos, List<float> scale, float hpRatio, float createTime)
|
|
|
{
|
|
{
|
|
|
SingleBuildingConfig cfgBuilding = GameManager.instance.allCfgData.CfgBuilding.Get(buildingID);
|
|
SingleBuildingConfig cfgBuilding = GameManager.instance.allCfgData.CfgBuilding.Get(buildingID);
|
|
|
GameObject portalObj = Util.Instantiate(cfgBuilding.BuildingPrefab);
|
|
GameObject portalObj = Util.Instantiate(cfgBuilding.BuildingPrefab);
|
|
|
PortalsCreater portalsCreater = portalObj.GetComponent<PortalsCreater>();
|
|
PortalsCreater portalsCreater = portalObj.GetComponent<PortalsCreater>();
|
|
|
- portalsCreater.id = buildingID;
|
|
|
|
|
- buildingDic.Add(buildingID, portalObj);
|
|
|
|
|
|
|
+ portalsCreater.id = ID;
|
|
|
|
|
+ buildingDic.Add(ID, portalObj);
|
|
|
portalsCreater.totalHp = (int)(cfgBuilding.HP * hpRatio);
|
|
portalsCreater.totalHp = (int)(cfgBuilding.HP * hpRatio);
|
|
|
portalsCreater.enemyCreater = this;
|
|
portalsCreater.enemyCreater = this;
|
|
|
portalsCreater.portalUIParent = portalUIParent;
|
|
portalsCreater.portalUIParent = portalUIParent;
|
|
|
portalsCreater.Init(pos,scale,createTime);
|
|
portalsCreater.Init(pos,scale,createTime);
|
|
|
- portalsCreater.enemyNumber -= 1;
|
|
|
|
|
- portalsCreater.enemyNumberText.text = portalsCreater.enemyNumber.ToString();
|
|
|
|
|
if (portalsCreater.enemyNumber == 0)
|
|
if (portalsCreater.enemyNumber == 0)
|
|
|
{
|
|
{
|
|
|
portalsCreater.enemyNumberText.transform.parent.gameObject.SetActive(false);
|
|
portalsCreater.enemyNumberText.transform.parent.gameObject.SetActive(false);
|