public GameObject CreateTurret(Vector3 pos) { GameObject newTurret = null; int price = TurretInfo.GetTurretInfo(selectableTurrets[selectedTurret]).price[0]; if (stageController.gold >= price) { newTurret = Instantiate(selectablePrefabs[selectedTurret]); TurretScript ts = newTurret.GetComponent <TurretScript>(); ts.SetPosition(pos); list_turret.Add(ts); if (ts.turretID == TurretInfo.TURRET_MINORIKO) { MinorikoScript ms = newTurret.GetComponent <MinorikoScript>(); if (ms != null) { list_minoriko.Add(ms); } } stageController.gold -= price; } return(newTurret); }
public void DeleteEnemy(EnemyScript es) { //金币奖励 mapController.gameObject.GetComponent <StageController>().gold += es.reward; TextEffectManager.instance.ShowTextAtPosition("+" + es.reward, enemyGoldColor, 25, es.transform.position + new Vector3(0, 0.5f), 0.3f); int id = es.ID; Vector3 pos = es.transform.position; //有复活标记并且是被打死的才能复活 bool rs = es.resurrect && es.hp <= 0 && !es.cursed; //秋穰子收获 for (int i = 0; i < turretController.list_minoriko.Count; i++) { MinorikoScript ms = turretController.list_minoriko[i]; if (ms.InFireRange(es.transform)) { float rate; if (ms.level == 0) { rate = 0.6f; } else { rate = 1f; } ms.Gain(rate * (float)es.reward); } } //结算蕾蒂的冰爆效果 if (PlayerInfo.instance.assist == Utils.ASSIST_LETTY) { if (es.HasDebuff(21)) { foreach (EnemyScript enemy in enemyList) { if (enemy != es && Vector3.Distance(es.transform.position, enemy.transform.position) <= 2) { enemy.HitBy(es.maxHp / 10, 0, 21, 1); } } } } enemyList.Remove(es); Destroy(es.gameObject); //如果能复活 if (rs) { EnemyScript newes = CreateEnemy(id, pos).GetComponent <EnemyScript>(); newes.resurrect = false; newes.SetHP(es.maxHp * es.resurrectRatio, es.maxHp * es.resurrectRatio); ParticleEffectManager.ShowResurrectEffect(pos + new Vector3(0, -0.5f), newes.transform); } }
public void DeleteTurret(TurretScript ts) { if (ts.turretID == TurretInfo.TURRET_MINORIKO) { MinorikoScript ms = ts.gameObject.GetComponent <MinorikoScript>(); if (ms != null && list_minoriko.Contains(ms)) { list_minoriko.Remove(ms); } } if (list_turret.Contains(ts)) { Destroy(ts.gameObject); list_turret.Remove(ts); } }