// Spawn two boats with 15 enemies each or remainder enemies bool EnemiesIsAlive() // Tests if any enemies are still alive { for (int i = 0; i < iNumOfMelee; i++) { if (MeleeArray[i] != null) { CS_Enemy cs = MeleeArray[i].GetComponent <CS_Enemy>(); if (cs != null) { if (cs.IsAlive()) { return(true); } } } } for (int i = 0; i < iNumOfRange; i++) { CS_Enemy cs = RangeArray[i].GetComponent <CS_Enemy>(); if (cs != null) { if (cs.IsAlive()) { return(true); } } } return(false); }
protected virtual void Update_Attack() { // update attack timer if (myAttackTimer > 0) { myAttackTimer -= Time.fixedDeltaTime; return; } // if enemy is gone, remove target if (myTargetEnemy != null && myTargetEnemy.gameObject.activeSelf == false) { myTargetEnemy = null; } // if i dont have a target, go through enemy list to find a target if (myTargetEnemy == null) { List <CS_Enemy> t_enemyList = CS_EnemyManager.Instance.GetEnemyList(); foreach (CS_Enemy f_enemy in t_enemyList) { if (CheckInRange(f_enemy.transform) == true) { myTargetEnemy = f_enemy; break; } } } // if no enemy in range, dont attack if (myTargetEnemy == null) { return; } // if the enemy move out of the range, stop attacking this enemy if (CheckInRange(myTargetEnemy.transform) == false) { myTargetEnemy = null; Debug.Log("out of range"); return; } // play sfx myAudioSource_Attack.Play(); // play effect myEffect.Kill(); myEffect.transform.position = myTargetEnemy.transform.position; myEffect.gameObject.SetActive(true); // attack enemy myTargetEnemy.TakeDamage(myStatus_Attack); myAttackTimer += myStatus_AttackTime; myAnimator.SetTrigger("Attack"); }
public void LoseEnemy(CS_Enemy g_enemy) { // update enemy count myEnemyCount++; CS_UIManager.Instance.SetCount(myEnemyCount, myEnemySpawnTimeArray.Length); if (myEnemyCount == myEnemySpawnTimeArray.Length) { CS_UIManager.Instance.ShowPageEnd(); } // remove enemy from list myEnemyList.Remove(g_enemy); }
private void Update_Timer() { if (myTimer < 0) { return; } // update timer myTimer -= Time.deltaTime; if (myTimer > 0) { return; } // generate enemy GameObject t_enemyObject = Instantiate(myEnemyPrefab); t_enemyObject.SetActive(false); // get enemy script CS_Enemy t_enemy = t_enemyObject.GetComponent <CS_Enemy> (); // init enemy t_enemy.Init(); // add enemy to list myEnemyList.Add(t_enemy); // stop spawn process if all listed are finished myEnemySpawnIndex++; if (myEnemySpawnIndex >= myEnemySpawnTimeArray.Length) { myTimer = -1; return; } // set timer myTimer = myEnemySpawnTimeArray[myEnemySpawnIndex]; }