private void fireLaserSowrd(float _fieldSize, Vector3 _ProjectileSpawnPoint, GameObject _TurretGameObject) { Vector3 RndFieldPos = _ProjectileSpawnPoint + (_TurretGameObject.transform.right * Random.Range(-_fieldSize, _fieldSize)) + (_TurretGameObject.transform.up * Random.Range(-_fieldSize, -_fieldSize / 2)); Quaternion LookToMouse = Quaternion.LookRotation(Vector3.forward, (new Vector3(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y, 0) - RndFieldPos)); Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.LaserSword_lvl_1)], RndFieldPos, LookToMouse); }
private void fireShotgun(int _bulletAmount, float _bulletRng, float _bulletDisplacement, Vector3 _ProjectileSpawnPoint, GameObject _TurretGameObject) { for (int i = 1; i <= _bulletAmount; i++) { Vector3 displacement = (_TurretGameObject.transform.up * Random.Range(-_bulletDisplacement, _bulletDisplacement)); Quaternion spread = Quaternion.Euler(0, 0, Random.Range(_bulletRng, -_bulletRng)); Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.ShotgunBullet_lvl_1)], _ProjectileSpawnPoint + displacement, _TurretGameObject.transform.rotation * spread); } //UnityEditor.EditorApplication.isPaused = true; }
private void fireAnyLaserGun(ProjectileBehaviourScript.BulletTypes LaserToFire) { if (cooldownTimeStamp <= Time.time) { if (Input.GetButtonDown("Fire1")) { pressedButtonDown = true; loadTimeStamp = Time.time + loadTime; isReady = true; } if (loadTimeStamp >= Time.time) { if (isReady == true) { Debug.Log("Loading"); } } if (loadTimeStamp <= Time.time) { if (isReady == true) { Instantiate(ObjectHolder._Effects[ObjectHolder.GetEffectIndex(EffectBehaviourScript.EffectTypes.LaserLoaded)], transform.position, transform.rotation, transform); isReady = false; } } if (pressedButtonDown == true) { if (Input.GetButtonUp("Fire1")) { if (loadTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(LaserToFire)], transform.position, transform.rotation, this.transform); loadTimeStamp = Time.time + loadTime; cooldownTimeStamp = Time.time + cooldown; //Apply cooldown when firered } else { loadTimeStamp = Time.time + loadTime; //no cooldown wehen reset Debug.Log("reset"); } isReady = false; pressedButtonDown = false; } } } }
private void fireChainGun(float offsetSpeed, float maxOffset, float BulletRng) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.ChainGunBullet_lvl_1)], ProjectileSpawnPoint + (TurretGameObject.transform.right * chainGunOffset), TurretGameObject.transform.rotation * Quaternion.Euler(0, 0, Random.Range(BulletRng, -BulletRng))); if (chainGunOffsetUp) { chainGunOffset += offsetSpeed; } else { chainGunOffset -= offsetSpeed; } if (chainGunOffset >= maxOffset) { chainGunOffsetUp = false; } if (chainGunOffset <= -maxOffset) { chainGunOffsetUp = true; } }
private void fireChainGun(int _level, float offsetSpeed, float maxOffset, float _BulletRng, Vector3 _ProjectileSpawnPoint, GameObject _TurretGameObject) { GameObject _bullet = null; switch (_level) { case (1): _bullet = ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.ChainGunBullet_lvl_1)]; break; case (2): _bullet = ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.ChainGunBullet_lvl_2)]; break; case (3): _bullet = ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.ChainGunBullet_lvl_3)]; break; default: Debug.LogError("fireChain gun did not recive a level of 1, 2 or 3."); return; } Instantiate(_bullet, _ProjectileSpawnPoint + (_TurretGameObject.transform.right * chainGunOffset), _TurretGameObject.transform.rotation * Quaternion.Euler(0, 0, Random.Range(_BulletRng, -_BulletRng))); if (chainGunOffsetUp) { chainGunOffset += offsetSpeed; } else { chainGunOffset -= offsetSpeed; } if (chainGunOffset >= maxOffset) { chainGunOffsetUp = false; } if (chainGunOffset <= -maxOffset) { chainGunOffsetUp = true; } }
void FireWeapon() { switch (currentWeapon) { case (Weapons.Standart_lvl_1): if (Input.GetButton("Fire1")) { cooldown = 0.3f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.Standart_lvl_2): if (Input.GetButton("Fire1")) { cooldown = 0.3f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint + (TurretGameObject.transform.right * 0.1f), TurretGameObject.transform.rotation); Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint + (TurretGameObject.transform.right * -0.1f), TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.Standart_lvl_3): if (Input.GetButton("Fire1")) { cooldown = 0.4f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint + (TurretGameObject.transform.right * 0.2f), TurretGameObject.transform.rotation); Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint + (TurretGameObject.transform.right * -0.2f), TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.Helix_lvl_1): if (Input.GetButton("Fire1")) { cooldown = 0.5f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HelixBullet_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.Helix_lvl_2): if (Input.GetButton("Fire1")) { cooldown = 0.7f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HelixBullet_lvl_2)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.Helix_lvl_3): if (Input.GetButton("Fire1")) { cooldown = 0.9f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HelixBullet_lvl_3)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.Spread): if (Input.GetButton("Fire1")) { cooldown = 0.4f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation * Quaternion.Euler(0, 0, -10)); Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation * Quaternion.Euler(0, 0, 10)); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.Homing_lvl_1): if (Input.GetButton("Fire1")) { cooldown = 0.3f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { float BulletRng = 1f; Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HomingBullet_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation * Quaternion.Euler(0, 0, Random.Range(BulletRng, -BulletRng))); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.Homing_lvl_2): if (Input.GetButton("Fire1")) { cooldown = 0.2f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { float BulletRng = 6f; Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HomingBullet_lvl_2)], ProjectileSpawnPoint, TurretGameObject.transform.rotation * Quaternion.Euler(0, 0, Random.Range(BulletRng, -BulletRng))); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.Homing_lvl_3): if (Input.GetButton("Fire1")) { cooldown = 0.1f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { float BulletRng = 12f; Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HomingBullet_lvl_3)], ProjectileSpawnPoint, TurretGameObject.transform.rotation * Quaternion.Euler(0, 0, Random.Range(BulletRng, -BulletRng))); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.LaserSword_lvl_1): if (Input.GetButton("Fire1")) { cooldown = 0.5f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { float fieldSize = 1.25f; Vector3 RndFieldPos = transform.position + (TurretGameObject.transform.right * Random.Range(-fieldSize, fieldSize)) + (TurretGameObject.transform.up * Random.Range(-fieldSize, -fieldSize / 2)); //new Vector3(Random.Range(-fieldSize, fieldSize), ; Quaternion LookToMouse = Quaternion.LookRotation(Vector3.forward, (new Vector3(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y, 0) - RndFieldPos)); Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.LaserSword_lvl_1)], RndFieldPos, LookToMouse); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.WaveEmitter_lvl_1): if (Input.GetButton("Fire1")) { cooldown = 0.3f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.WaveBullet_lvl_X)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.RocketLauncher_lvl_1): if (Input.GetButton("Fire1")) { cooldown = 0.8f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Missile_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.GrenadeLauncher_lvl_1): if (Input.GetButton("Fire1")) { cooldown = 0.8f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Grenade_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.ShrapnelLauncher_lvl_1): if (Input.GetButton("Fire1")) { cooldown = 0.8f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Shrapnel_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.ShrapnelLauncher_lvl_2): if (Input.GetButton("Fire1")) { cooldown = 1.2f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Shrapnel_lvl_2)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.ShrapnelLauncher_lvl_3): if (Input.GetButton("Fire1")) { cooldown = 1.4f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { Instantiate(Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Shrapnel_lvl_3)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.ChainGun_lvl_1): if (Input.GetButton("Fire1")) { cooldown = 0.01f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { fireChainGun(0.04f, 0.1f, 6f); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.ChainGun_lvl_2): if (Input.GetButton("Fire1")) { cooldown = 0.01f * fireRateMultiplyer * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { fireChainGun(0.04f, 0.1f, 3f); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.ChainGun_lvl_3): if (Input.GetButton("Fire1")) { cooldown = 0.005f * fireRateMultiplyer; if (cooldownTimeStamp <= Time.time) { fireChainGun(0.04f, 0.1f, 1f); cooldownTimeStamp = Time.time + cooldown; } } break; case (Weapons.LaserGun): cooldown = 2f * fireRateMultiplyer; loadTime = 1f; if (cooldownTimeStamp <= Time.time) { if (Input.GetButtonDown("Fire1")) { pressedButtonDown = true; loadTimeStamp = Time.time + loadTime; isReady = true; } if (loadTimeStamp >= Time.time) { if (isReady == true) { Debug.Log("Loading"); } } if (loadTimeStamp <= Time.time) { if (isReady == true) { Instantiate(ObjectHolder._Effects[ObjectHolder.GetEffectIndex(EffectBehaviourScript.EffectTypes.LaserLoaded)], transform.position, transform.rotation, transform); isReady = false; } } } break; default: Debug.LogError("The Weapon Type -" + currentWeapon.ToString() + "- has no values assinged!"); break; } }
//UnityEditor.EditorApplication.isPaused = true; public void Fire(Vector3 ProjectileSpawnPoint, GameObject TurretGameObject) { switch (WeaponType) { case (WeaponTypes.Blaster_lvl_1): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("BlasterShoot"); break; case (WeaponTypes.Blaster_lvl_2): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint + (TurretGameObject.transform.right * 0.1f), TurretGameObject.transform.rotation); Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint + (TurretGameObject.transform.right * -0.1f), TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("BlasterShoot"); break; case (WeaponTypes.Blaster_lvl_3): float _value = 0.1125f; float _offset = _value; if (Standartlvl3OffsetDirection == true) { _offset = _value; } if (Standartlvl3OffsetDirection == false) { _offset = -_value; } Standartlvl3OffsetDirection = !Standartlvl3OffsetDirection; Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.BlasterShoot_lvl_1)], ProjectileSpawnPoint + (TurretGameObject.transform.right * _offset), TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("BlasterShoot"); break; case (WeaponTypes.Helix_lvl_1): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HelixBullet_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("HelixShoot_lvl1"); break; case (WeaponTypes.Helix_lvl_2): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HelixBullet_lvl_2)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("HelixShoot_lvl2"); break; case (WeaponTypes.Helix_lvl_3): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HelixBullet_lvl_3)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("HelixShoot_lvl3"); break; case (WeaponTypes.Shotgun_lvl_1): fireShotgun(7, 10f, 0.4f, ProjectileSpawnPoint, TurretGameObject); AudioControllerScript.activeInstance.PlaySound("ShotgunShoot"); break; case (WeaponTypes.Shotgun_lvl_2): fireShotgun(11, 12f, 0.4f, ProjectileSpawnPoint, TurretGameObject); AudioControllerScript.activeInstance.PlaySound("ShotgunShoot"); break; case (WeaponTypes.Shotgun_lvl_3): fireShotgun(15, 14f, 0.4f, ProjectileSpawnPoint, TurretGameObject); AudioControllerScript.activeInstance.PlaySound("ShotgunShoot"); break; case (WeaponTypes.Homing_lvl_1): BulletRng = 1f; Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HomingBullet_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation * Quaternion.Euler(0, 0, Random.Range(BulletRng, -BulletRng))); AudioControllerScript.activeInstance.PlaySound("HomingShoot2", Random.Range(0.75f, 1.125f)); break; case (WeaponTypes.Homing_lvl_2): BulletRng = 6f; Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HomingBullet_lvl_2)], ProjectileSpawnPoint, TurretGameObject.transform.rotation * Quaternion.Euler(0, 0, Random.Range(BulletRng, -BulletRng))); AudioControllerScript.activeInstance.PlaySound("HomingShoot2", Random.Range(0.5f, 1.5f)); break; case (WeaponTypes.Homing_lvl_3): BulletRng = 12f; Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HomingBullet_lvl_3)], ProjectileSpawnPoint, TurretGameObject.transform.rotation * Quaternion.Euler(0, 0, Random.Range(BulletRng, -BulletRng))); AudioControllerScript.activeInstance.PlaySound("HomingShoot2", Random.Range(0.5f, 1.5f)); break; case (WeaponTypes.LaserSwordController_lvl_1): fireLaserSowrd(1.5f, ProjectileSpawnPoint, TurretGameObject); AudioControllerScript.activeInstance.PlaySound("LaserSwordSummon2", Random.Range(0.8f, 1.2f)); break; case (WeaponTypes.LaserSwordController_lvl_2): fireLaserSowrd(1.75f, ProjectileSpawnPoint, TurretGameObject); AudioControllerScript.activeInstance.PlaySound("LaserSwordSummon2", Random.Range(0.8f, 1.2f)); break; case (WeaponTypes.LaserSwordController_lvl_3): fireLaserSowrd(2f, ProjectileSpawnPoint, TurretGameObject); AudioControllerScript.activeInstance.PlaySound("LaserSwordSummon2", Random.Range(0.8f, 1.2f)); break; case (WeaponTypes.MissileLauncher_lvl_1): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Missile_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("MissileShoot"); break; case (WeaponTypes.MissileLauncher_lvl_2): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Missile_lvl_2)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("MissileShoot"); break; case (WeaponTypes.MissileLauncher_lvl_3): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Missile_lvl_3)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("MissileShoot"); break; case (WeaponTypes.GrenadeLauncher_lvl_1): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Grenade_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("GrenadeLauncherShoot"); break; case (WeaponTypes.GrenadeLauncher_lvl_2): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Grenade_lvl_2)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("GrenadeLauncherShoot"); break; case (WeaponTypes.GrenadeLauncher_lvl_3): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Grenade_lvl_3)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("GrenadeLauncherShoot"); break; case (WeaponTypes.ShrapnelLauncher_lvl_1): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Shrapnel_lvl_1)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("GrenadeLauncherShoot"); break; case (WeaponTypes.ShrapnelLauncher_lvl_2): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Shrapnel_lvl_2)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("GrenadeLauncherShoot"); break; case (WeaponTypes.ShrapnelLauncher_lvl_3): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.Shrapnel_lvl_3)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); AudioControllerScript.activeInstance.PlaySound("GrenadeLauncherShoot"); break; case (WeaponTypes.ChainGun_lvl_1): fireChainGun(1, 0.03f, 0.09f, 6f, ProjectileSpawnPoint, TurretGameObject); AudioControllerScript.activeInstance.PlaySound("ChaingunShoot2"); break; case (WeaponTypes.ChainGun_lvl_2): fireChainGun(2, 0.03f, 0.09f, 3f, ProjectileSpawnPoint, TurretGameObject); AudioControllerScript.activeInstance.PlaySound("ChaingunShoot2"); break; case (WeaponTypes.ChainGun_lvl_3): fireChainGun(3, 0.03f, 0.09f, 1f, ProjectileSpawnPoint, TurretGameObject); AudioControllerScript.activeInstance.PlaySound("ChaingunShoot2"); break; case (WeaponTypes.Helix_lvl_X): Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.HelixBullet_lvl_X)], ProjectileSpawnPoint, TurretGameObject.transform.rotation); break; case (WeaponTypes.Sniper_lvl_X): StartFiringSniper(ProjectileSpawnPoint, TurretGameObject); AudioControllerScript.activeInstance.PlaySound("SniperShoot"); break; case (WeaponTypes.WaveEmitter_lvl_X): GameObject waveBulletToInstantiate = ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.WaveBullet_lvl_X)]; Instantiate(waveBulletToInstantiate, ProjectileSpawnPoint, TurretGameObject.transform.rotation * waveBulletToInstantiate.transform.rotation); AudioControllerScript.activeInstance.PlaySound("WaveShoot"); break; default: Debug.LogError("The Weapon Type -" + WeaponType.ToString() + "- has no values assinged!"); break; } }
private IEnumerator FireSniper(GameObject _SpawnPoint) { yield return(new WaitForSeconds(1f)); Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(ProjectileBehaviourScript.BulletTypes.SniperBullet_lvl_X)], _SpawnPoint.transform.position, _SpawnPoint.transform.rotation); }
public void InitiliseSelfDestruction() { SelfDestructionActive = true; if (this.GetType() == typeof(ExplosionBehaviourScript)) { OnExplosion(); StartCoroutine(DelayDestruction()); } else //================================= Normal Destruction ================================= //specific bullet behaviour { if (AmountOfShrapnellBulletsSpawnedOnDeath != 0) { for (int i = 1; i <= AmountOfShrapnellBulletsSpawnedOnDeath; i++) { Instantiate(ObjectHolder._Bullets[ObjectHolder.GetBulletIndex(BulletTypes.ShrapnellBullet)], transform.position, Quaternion.Euler(0, 0, (360 / AmountOfShrapnellBulletsSpawnedOnDeath) * i)); //360 / Amount devides the cicle to all the shrapnellbullets } } //detaches all (Helix)BulletChilds of the own transform and gives them speed foreach (Transform ImminentChildTransform in transform) { if (ImminentChildTransform.GetComponent <ProjectileBehaviourScript>() != null) { ImminentChildTransform.rotation = transform.rotation; ImminentChildTransform.GetComponent <ProjectileBehaviourScript>().speed = speed / 2; ImminentChildTransform.parent = null; } } foreach (LineRenderer LineRendererGo in GetComponentsInChildren <LineRenderer>()) { Destroy(LineRendererGo.transform.gameObject); } //deactivate Collider if (GetComponent <CircleCollider2D>() != null) { GetComponent <CircleCollider2D>().enabled = false; } if (GetComponent <BoxCollider2D>() != null) { GetComponent <BoxCollider2D>().enabled = false; } if (GetComponent <CapsuleCollider2D>() != null) { GetComponent <CapsuleCollider2D>().enabled = false; } StartCoroutine(DelayDestruction()); speed = speed / 10f; if (createOnDeath != null) { Instantiate(createOnDeath, transform); if (createOnDeath.GetComponent <ProjectileBehaviourScript>() != null) { Debug.LogWarning("If you want to Intantiate an explosion please do that with explosionOnDeath."); } } if (explosionOnDeath != null) { Instantiate(explosionOnDeath, transform.position, Quaternion.identity); if (explosionOnDeath.GetComponent <ProjectileBehaviourScript>() == null) { Debug.LogWarning("If you want to Intantiate an OnDeathEffect please do that with createOnDeath."); } } } StartCoroutine(FinishDestructionAfterOneFrame()); }