void selfDestructFunction() { if (gameObject.activeSelf == true) { tempSelfDestructTimer -= Time.deltaTime; if (tempSelfDestructTimer <= 0.0f) { turningAngle = 0; Quaternion targetAngle = Quaternion.identity; bulletTransform.rotation = Quaternion.identity; bulletRigidbody.velocity = Vector3.zero; rainFallTimerCountdown = 0f; rainFallStopTimerCountdown = 0f; aimPlayerCountdown = 0f; fallen = false; stop = false; aimed = false; bounceWall = false; currentBulletPattern = BulletPatternType.SET_TYPE; isToBeDestroyed = true; } } }
public void BulletTurningCallFunction() { if (bulletTurningInitialRun == true) { currentBulletPattern = BulletPatternType.TURNING_RIGHT; BulletTurningMainFunction(); bossAIScript.playBossAttackingAnimation = true; isBulletTurningActive = true; bulletTurningInitialRun = false; } if (isBulletTurningActive == true) { bulletTurningCounter += Time.deltaTime; if (bulletTurningCounter >= bulletTurningTimerValue) { BulletTurningMainFunction(); bossAIScript.playBossAttackingAnimation = true; } } else { bulletTurningCounter = 0.0f; } }
void OnTriggerEnter(Collider other) { if (gameObject.activeSelf == true) { // Delete Undestroyalble Bullet if not needed for final build #region Undestroyable Bullet Function if (bulletType != BulletType.BLUE_BULLET) // Test Undestroyable Blue Bullet { if (other.tag == "PlayerHitbox" || other.gameObject.tag == "ChargeSlashProjectile") { tempSelfDestructTimer = 0f; } } #endregion // Delete if not needed for final build #region Bomb Explosion Function if (other.tag == "PlaneHitbox" && isBomb) //if(isBomb && transform.position.y <= 2.5f) //Please change this to distance formula from ground { transform.rotation = Quaternion.Euler(0, 0, 0); float centerpointDistanceChecker = Vector3.Distance(centerpointChecker.position, transform.position); if (centerpointDistanceChecker <= 107.25f) { //insert bomb script for (int i = 0; i < 12; i++) { GameObject redBullet = ObjectPooler.Instance.getPooledObject("Rhythm Bullet"); redBullet.GetComponent(typeof(BulletPattern)); if (redBullet != null) { turningAngle = 0f; redBullet.transform.position = new Vector3(transform.position.x, bulletStandardHeight, transform.position.z); redBullet.transform.rotation = transform.rotation; redBullet.transform.rotation *= Quaternion.Euler(0, i * 30, 0); redBullet.GetComponent <BulletPattern>().bulletSpeed = 10f; redBullet.GetComponent <BulletPattern>().selfDestructTimer = 15f; redBullet.GetComponent <BulletPattern>().smoothing = 0f; redBullet.GetComponent <BulletPattern>().bounceWall = true; redBullet.GetComponent <BulletPattern>().currentBulletPattern = BulletPatternType.STRAIGHT; redBullet.SetActive(true); if (i == 0) // Activates the Audio Source component for only one Bullet and plays the 'Touchdown' sound { redBullet.GetComponent <BulletPattern>().playBulletTouchdownSound = true; } } } } isBomb = false; tempSelfDestructTimer = 0f; } #endregion #region Wall Bounce Function if (other.tag == "Wall" && bounceWall) { //fix currentBulletPattern = BulletPatternType.AIM_PLAYER; aimPlayerTimer = 0.1f; bounceWall = false; isBounceWall = true; playBulletReflectSound = true; } #endregion #region Super Ultra Mega Bomb Explosion function if (other.tag == "PlaneHitbox" && isSuperUltraMegaDeathBomb) { transform.rotation = Quaternion.Euler(0, 0, 0); float centerpointDistanceChecker = Vector3.Distance(centerpointChecker.position, transform.position); if (centerpointDistanceChecker <= 107.5f) { //insert bomb script //1st wave for (int i = 0; i < 24; i++) { GameObject redBullet = ObjectPooler.Instance.getPooledObject("Rhythm Bullet"); redBullet.GetComponent(typeof(BulletPattern)); if (redBullet != null) { redBullet.transform.position = new Vector3(transform.position.x, bulletStandardHeight, transform.position.z); redBullet.transform.rotation = transform.rotation; redBullet.transform.rotation *= Quaternion.Euler(0, i * 15f, 0); redBullet.GetComponent <BulletPattern>().bulletSpeed = 15f; redBullet.GetComponent <BulletPattern>().selfDestructTimer = 10f; currentBulletPattern = BulletPatternType.STRAIGHT; redBullet.SetActive(true); } if (i == 0) // Activates the Audio Source component for only one Bullet and plays the 'Touchdown' sound { redBullet.GetComponent <BulletPattern>().playBulletTouchdownSound = true; } } //2nd wave for (int i = 0; i < 36; i++) { GameObject redBullet = ObjectPooler.Instance.getPooledObject("Rhythm Bullet"); redBullet.GetComponent(typeof(BulletPattern)); if (redBullet != null) { redBullet.transform.position = new Vector3(transform.position.x, bulletStandardHeight, transform.position.z); redBullet.transform.rotation = transform.rotation; redBullet.transform.rotation *= Quaternion.Euler(0, i * 10, 0); redBullet.GetComponent <BulletPattern>().bulletSpeed = 12f; redBullet.GetComponent <BulletPattern>().selfDestructTimer = 10f; currentBulletPattern = BulletPatternType.STRAIGHT; redBullet.SetActive(true); } if (i == 0) // Activates the Audio Source component for only one Bullet and plays the 'Touchdown' sound { redBullet.GetComponent <BulletPattern>().playBulletTouchdownSound = true; } } //3rd wave for (int i = 0; i < 48; i++) { GameObject redBullet = ObjectPooler.Instance.getPooledObject("Rhythm Bullet"); redBullet.GetComponent(typeof(BulletPattern)); if (redBullet != null) { redBullet.transform.position = new Vector3(transform.position.x, bulletStandardHeight, transform.position.z); redBullet.transform.rotation = transform.rotation; redBullet.transform.rotation *= Quaternion.Euler(0, i * 7.5f, 0); redBullet.GetComponent <BulletPattern>().bulletSpeed = 10f; redBullet.GetComponent <BulletPattern>().selfDestructTimer = 20f; currentBulletPattern = BulletPatternType.STRAIGHT; redBullet.SetActive(true); } if (i == 0) // Activates the Audio Source component for only one Bullet and plays the 'Touchdown' sound { redBullet.GetComponent <BulletPattern>().playBulletTouchdownSound = true; } } } isSuperUltraMegaDeathBomb = false; tempSelfDestructTimer = 0f; } #endregion } }
void BulletTurningMainFunction() { if (currentBulletPattern == BulletPatternType.TURNING_RIGHT) { for (int i = 0; i < 45; i++) { GameObject redBullet = ObjectPooler.Instance.getPooledObject("Rhythm Bullet"); bulletPattern = (BulletPattern)redBullet.GetComponent(typeof(BulletPattern)); if (redBullet != null) { redBullet.transform.position = new Vector3(transform.position.x, bulletStandardHeight, transform.position.z); redBullet.transform.rotation = transform.rotation; redBullet.transform.rotation *= Quaternion.Euler(0, i * (360f / 45f), 0); bulletPattern.bulletSpeed = 10f; bulletPattern.turningAngle = i * (360f / 45f); bulletPattern.smoothing = 2f; bulletPattern.selfDestructTimer = 7f; bulletPattern.currentBulletPattern = BulletPattern.BulletPatternType.TURNING_RIGHT; redBullet.SetActive(true); if (i == 0) { SoundManagerScript.mInstance.PlaySFX(AudioClipID.SFX_BULLET_BOMBING_RUN_TOUCHDOWN); if (bossAIScript.playBossAttackingAnimation == true) { //bossAIScript.bossAnimator.Play("BossAttackAnimation",-1,0.0f); bossAIScript.playBossAttackingAnimation = false; } } } } bulletTurningWaveCount++; bulletTurningCounter = 0.0f; if (bulletTurningWaveCount >= 4) { currentBulletPattern = BulletPatternType.BOTH_TURNS; } else { currentBulletPattern = BulletPatternType.TURNING_LEFT; } } else if (currentBulletPattern == BulletPatternType.TURNING_LEFT) { for (int i = 0; i < 45; i++) { GameObject blueBullet = ObjectPooler.Instance.getPooledObject("Rhythm Bullet"); // Non-Rhythm Bullet (Non-Rhythm Bullet - Actual) bulletPattern = (BulletPattern)blueBullet.GetComponent(typeof(BulletPattern)); if (blueBullet != null) { blueBullet.transform.position = new Vector3(transform.position.x, bulletStandardHeight, transform.position.z); blueBullet.transform.rotation = transform.rotation; blueBullet.transform.rotation *= Quaternion.Euler(0, i * (360f / 45f), 0); bulletPattern.bulletSpeed = 10f; bulletPattern.turningAngle = i * (360f / 45f); bulletPattern.smoothing = 2f; bulletPattern.selfDestructTimer = 7f; bulletPattern.currentBulletPattern = BulletPattern.BulletPatternType.TURNING_LEFT; blueBullet.SetActive(true); } if (i == 0) { SoundManagerScript.mInstance.PlaySFX(AudioClipID.SFX_BULLET_BOMBING_RUN_TOUCHDOWN); if (bossAIScript.playBossAttackingAnimation == true) { if (bossIntialAttackAnimationCheck == true) { bossAIScript.bossAnimator.Play("BossAttackAnimation", -1, 0.0f); } if (bossIntialAttackAnimationCheck == false) { bossIntialAttackAnimationCheck = true; } bossAIScript.playBossAttackingAnimation = false; } } } bulletTurningWaveCount++; bulletTurningCounter = 0.0f; if (bulletTurningWaveCount >= 4) { currentBulletPattern = BulletPatternType.BOTH_TURNS; } else { currentBulletPattern = BulletPatternType.TURNING_RIGHT; } } else if (currentBulletPattern == BulletPatternType.BOTH_TURNS) { for (int i = 0; i < 45; i++) { GameObject redBullet = ObjectPooler.Instance.getPooledObject("Rhythm Bullet"); bulletPattern = (BulletPattern)redBullet.GetComponent(typeof(BulletPattern)); if (redBullet != null) { redBullet.transform.position = new Vector3(transform.position.x, bulletStandardHeight, transform.position.z); redBullet.transform.rotation = transform.rotation; redBullet.transform.rotation *= Quaternion.Euler(0, i * (360f / 45f), 0); bulletPattern.bulletSpeed = 10f; bulletPattern.turningAngle = i * (360f / 45f); bulletPattern.smoothing = 2f; bulletPattern.selfDestructTimer = 7f; bulletPattern.currentBulletPattern = BulletPattern.BulletPatternType.TURNING_RIGHT; redBullet.SetActive(true); } GameObject blueBullet = ObjectPooler.Instance.getPooledObject("Rhythm Bullet"); // Non-Rhythm Bullet (Non-Rhythm Bullet - Actual) bulletPattern = (BulletPattern)blueBullet.GetComponent(typeof(BulletPattern)); if (blueBullet != null) { blueBullet.transform.position = new Vector3(transform.position.x, bulletStandardHeight, transform.position.z); blueBullet.transform.rotation = transform.rotation; blueBullet.transform.rotation *= Quaternion.Euler(0, i * (360f / 45f), 0); bulletPattern.bulletSpeed = 10f; bulletPattern.turningAngle = i * (360f / 45f); bulletPattern.smoothing = 2f; bulletPattern.selfDestructTimer = 7f; bulletPattern.currentBulletPattern = BulletPattern.BulletPatternType.TURNING_LEFT; blueBullet.SetActive(true); } if (i == 0) { SoundManagerScript.mInstance.PlaySFX(AudioClipID.SFX_BULLET_BOMBING_RUN_TOUCHDOWN); if (bossAIScript.playBossAttackingAnimation == true) { int randNum = Random.Range(0, 6); if (randNum == 5) { bossAIScript.bossAnimator.Play("BossLaughAnimation", -1, 0.0f); } else { bossAIScript.bossAnimator.Play("BossAttack2Animation", -1, 0.0f); } bossAIScript.playBossAttackingAnimation = false; } } } bulletTurningWaveCount = 0; bulletTurningCounter = -1.0f; currentBulletPattern = BulletPatternType.TURNING_RIGHT; } }
void Start() { player = GameObject.FindGameObjectWithTag("Player"); dropSuperMegaUltraDeathBomb = false; currentBulletPattern = BulletPatternType.TURNING_RIGHT; }