protected virtual void Shot(EnemyScr enemy) { float tmpz = Stvol.rotation.eulerAngles.y * Mathf.Deg2Rad; BulletScr bull = Instantiate(Resources.Load("Object/GAME/Towers/Bullet") as GameObject, Stvol.GetChild(0).position, new Quaternion()).GetComponent <BulletScr>(); bull.Target = enemy; bull.TempTarget = enemy.transform.position; bull.Damage = Damage; }
private void Awake() { GM = FindObjectOfType <GameManager>(); AM = FindObjectOfType <AudioManager>(); level = GM.slainEnemies; if (GM.onFinalLevel1) { //Enemy = EnemyTypes[PlayerPrefs.GetInt("statusPref_survivor", 1)]; setAllyFinal(); getAllyFinal(); Enemy.name = "Enemy"; Heavy = Instantiate(AIH, posAIH.position, Quaternion.identity); AIHS = Heavy.GetComponent <EnemyScr>(); Middle = Instantiate(AIM, posAIL.position, Quaternion.identity); AIMS = Middle.GetComponent <EnemyScr>(); Light = Instantiate(AIL, posAIM.position, Quaternion.identity); AILS = Light.GetComponent <EnemyScr>(); } //else if (GM.onFinalLevel2) //{ // //Enemy = EnemyTypes[PlayerPrefs.GetInt("statusPref_survivor", 1)]; // Enemy.name = "Enemy"; //} //ES = Enemy.GetComponent<EnemyScr>(); else if (level == 2 && GM.statusE[ES.ID] == false) { Heavy = Instantiate(AIH, posAIH.position, Quaternion.identity); Heavy.transform.Rotate(new Vector3(0, 0, 180)); AIHS = Heavy.GetComponent <EnemyScr>(); } else if (level == 5 && GM.statusE[ES.ID] == false) { Middle = Instantiate(AIM, posAIL.position, Quaternion.identity); AIMS = Middle.GetComponent <EnemyScr>(); Light = Instantiate(AIL, posAIM.position, Quaternion.identity); AILS = Light.GetComponent <EnemyScr>(); Debug.Log(AIMS); Debug.Log(AILS); } }
private void OnTriggerEnter(Collider other) { Debug.Log(other.gameObject.name); if (other.gameObject.tag == "Enemy") { enemy = other.transform.parent.GetComponent <EnemyScr>(); enemy.enemyLp--; myBody.velocity = Vector3.zero; Debug.Log("Hit"); Destroy(this.gameObject); } }
protected override void Shot(EnemyScr enemy) { if (Time.time - SpeedShotStartTime >= 1f / SpeedShot) { MageBullet bull = Instantiate(Resources.Load("Object/GAME/Towers/FrostMage/BulletMage") as GameObject, new Vector3(X, 2f, Y), new Quaternion()).GetComponent <MageBullet>(); bull.Target = enemy; bull.Damage = Damage; bull.TempTarget = enemy.transform.position; bull.SlowDown = SlowEffect; bull.RangeDamage = RangeDamage; SpeedShotStartTime = Time.time; } }
protected virtual void Turn(EnemyScr target) { Vector3 diff = target.transform.position - Stvol.position; diff.Normalize(); float rot_z = Mathf.Atan2(diff.x, diff.z) * Mathf.Rad2Deg; if (rot_z < 0) { rot_z += 360; } if (Mathf.Abs(Stvol.rotation.eulerAngles.y - rot_z) <= RotationSpeed * del) { Stvol.rotation = Quaternion.Euler(-90f, rot_z, 0); if (Time.time - SpeedShotStartTime >= 1f / SpeedShot) { Shot(target); SpeedShotStartTime = Time.time; } } else { float tmpz = Stvol.rotation.eulerAngles.y; if (tmpz < rot_z) { tmpz += 360; } if (tmpz - rot_z > 180) { Stvol.rotation = Quaternion.Euler(-90f, Stvol.rotation.eulerAngles.y + RotationSpeed * del, 0f); } else { Stvol.rotation = Quaternion.Euler(-90f, Stvol.rotation.eulerAngles.y - RotationSpeed * del, 0f); } } TurnStartTime = Time.time; }
void getAllyFinal() { Debug.Log("ID"); Debug.Log(PlayerPrefs.GetInt("statusPref_survivor")); Debug.Log("ID"); if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 1) { ES = Enemy.GetComponent <EnemyDesertScr>();//.enabled = false; } if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 2) { ES = Enemy.GetComponent <EnemyRainForestScr>();//.enabled = false; } if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 3) { ES = Enemy.GetComponent <EnemyScrUnderground>();//.enabled = false; } if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 4) { ES = Enemy.GetComponent <EnemyManufactureScr>();//.enabled = false; } if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 5) { ES = Enemy.GetComponent <EnemyScrArena>();//.enabled = false; } if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 6) { ES = Enemy.GetComponent <EnemyAirArenaScr>();//.enabled = false; } if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 7) { ES = Enemy.GetComponent <EnemyScr>();//.enabled = false; } if (PlayerPrefs.GetInt("statusPref_survivor", 1) == 8) { ES = Enemy.GetComponent <EnemyBridgeScr>();//.enabled = false; } }
// Start is called before the first frame update void Start() { PS = Player.GetComponent <PlayerScr>(); PS.ES = ES; if (GM.onFinalLevel1) { getAllyFinal(); ES.tag = "Player"; ES.ally = true; ES.gameObject.layer = 15; foreach (Transform child in ES.transform) { if (child.gameObject.tag == "Enemy") { child.gameObject.tag = "Player"; } if (child.gameObject.layer == 11) { child.gameObject.layer = 15; } } ES.AIList.Add(Light); ES.AIList.Add(Middle); ES.AIList.Add(Heavy); } else if (level == 2 && GM.statusE[ES.ID] == false) { ES = Enemy.GetComponent <EnemyScr>(); ES.currentHP = 0; ES.tag = "wall"; foreach (Transform child in ES.transform) { if (child.gameObject.tag == "Enemy") { child.gameObject.tag = "wall"; } } } else if (level == 5 && GM.statusE[ES.ID] == false) { ES = Enemy.GetComponent <EnemyScr>(); ES.tag = "Player"; ES.ally = true; ES.gameObject.layer = 15; foreach (Transform child in ES.transform) { if (child.gameObject.tag == "Enemy") { child.gameObject.tag = "Player"; } if (child.gameObject.layer == 11) { child.gameObject.layer = 15; } } ES.AIList.Add(Light); ES.AIList.Add(Middle); } else { ES = Enemy.GetComponent <EnemyScr>(); } if (image == null) { Debug.LogError("Error: No image on " + name); } if (level > 2 && level < 5) { startQ = startQM; midQ = midQM; lowQ = lowQM; deathQ = deathQM; } else if (level > 5 && level < 8) { startQ = startQL; midQ = midQL; lowQ = lowQL; deathQ = deathQL; } }
void Update() { del = Time.time - TurnStartTime; if (SearchEnemy) { int BeginX = Mathf.CeilToInt((X - Range < 0) ? 0 : X - Range); int BeginY = Mathf.CeilToInt((Y - Range < 0) ? 0 : Y - Range); int EndX = Mathf.CeilToInt((X + Range > GlobalData.LevelSize) ? GlobalData.LevelSize : X + Range); int EndY = Mathf.CeilToInt((Y + Range > GlobalData.LevelSize) ? GlobalData.LevelSize : Y + Range); bool flag = false; for (int i = BeginX; i < EndX; i++) { for (int j = BeginY; j < EndY; j++) { foreach (EnemyScr enemy in GlobalData.EnemyMatrix[j, i]) { if (enemy != null && Vector3.Magnitude(enemy.transform.position - transform.position) <= Range) { if (flag == false) { TempTarget = enemy; flag = true; } if (TargetPriority == 1) { if (enemy.Health > TempTarget.Health) { TempTarget = enemy; } } else if (TargetPriority == 2) { if (enemy.Health < TempTarget.Health) { TempTarget = enemy; } } } } } } if (TempTarget != null) { SearchEnemy = false; } } else { if (TempTarget != null && Vector3.Magnitude(TempTarget.transform.position - transform.position) <= Range) { Turn(TempTarget); } else { SearchEnemy = true; TempTarget = null; } } TurnStartTime = Time.time; }