Exemplo n.º 1
0
 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;
             }
         }
     }
 }
Exemplo n.º 2
0
    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;
        }
    }
Exemplo n.º 3
0
    private void StartFiringSniper(Vector3 _ProjectileSpawnPoint, GameObject _TurretGameObject)
    {
        GameObject effect = Instantiate(ObjectHolder._Effects[ObjectHolder.GetEffectIndex(EffectBehaviourScript.EffectTypes.SniperCharging)], _ProjectileSpawnPoint, _TurretGameObject.transform.rotation, _TurretGameObject.transform);

        effect.GetComponent <EffectBehaviourScript>().StartCoroutine(FireSniper(effect));
    }