Esempio n. 1
0
        public static BulletParameters ReadFrom(System.IO.BinaryReader reader)
        {
            var result = new BulletParameters();

            result.Speed  = reader.ReadDouble();
            result.Size   = reader.ReadDouble();
            result.Damage = reader.ReadInt32();
            return(result);
        }
 public BulletParameters(BulletParameters bulletParameters)
 {
     dmg                = bulletParameters.dmg;
     isEmpowered        = bulletParameters.isEmpowered;
     delay              = bulletParameters.delay;
     chosenBulletPrefab = bulletParameters.chosenBulletPrefab;
     position           = bulletParameters.position;
     rotation           = bulletParameters.rotation;
     up      = bulletParameters.up;
     isTuned = bulletParameters.isTuned;
 }
Esempio n. 3
0
 public WeaponParameters(int magazineSize, double fireRate, double reloadTime, double minSpread, double maxSpread, double recoil, double aimSpeed, BulletParameters bullet, ExplosionParameters?explosion)
 {
     MagazineSize = magazineSize;
     FireRate     = fireRate;
     ReloadTime   = reloadTime;
     MinSpread    = minSpread;
     MaxSpread    = maxSpread;
     Recoil       = recoil;
     AimSpeed     = aimSpeed;
     Bullet       = bullet;
     Explosion    = explosion;
 }
    public void Modify(List <BulletParameters> bullets)
    {
        float delay = FindObjectOfType <Conductor>().secPerBeat / 4;

        if (bullets[0].isEmpowered)
        {
            BulletParameters delayedBulletParameters = new BulletParameters(bullets[0])
            {
                delay = delay
            };
            bullets.Add(delayedBulletParameters);
        }
        return;
    }
Esempio n. 5
0
        public static WeaponParameters ReadFrom(System.IO.BinaryReader reader)
        {
            if (reader == null)
            {
                throw new System.ArgumentNullException(nameof(reader));
            }

            var magazineSize        = reader.ReadInt32();
            var fireRate            = reader.ReadDouble();
            var reloadTime          = reader.ReadDouble();
            var minSpread           = reader.ReadDouble();
            var maxSpread           = reader.ReadDouble();
            var recoil              = reader.ReadDouble();
            var aimSpeed            = reader.ReadDouble();
            var bullet              = BulletParameters.ReadFrom(reader);
            var explosionParameters = reader.ReadBoolean() ? ExplosionParameters.ReadFrom(reader) : null;

            return(new WeaponParameters(magazineSize, fireRate, reloadTime, minSpread, maxSpread, recoil, aimSpeed, bullet, explosionParameters));
        }
    private IEnumerator SpawnBullet(BulletParameters bulletParameters)
    {
        yield return(new WaitForSeconds(bulletParameters.delay));

        // play the sound
        audioSource.Play();
        // spawn the bullet
        GameObject bullet = Instantiate(bulletParameters.chosenBulletPrefab, bulletParameters.position, bulletParameters.rotation);

        // set tag
        bullet.gameObject.tag = "PlayerBullet";
        // set damage and empowered status
        bullet.GetComponent <Bullet>().SetBulletParameters(bulletParameters.dmg, bulletParameters.isEmpowered, bulletParameters.isTuned);
        // subscribe to enemy hit event
        bullet.GetComponent <Bullet>().enemyHitEvent.AddListener(onEnemyHit);
        // add force
        Rigidbody2D rb = bullet.GetComponent <Rigidbody2D>();

        rb.AddForce(bulletParameters.up * bulletSpeed, ForceMode2D.Impulse);
    }
Esempio n. 7
0
        public static WeaponParameters ReadFrom(System.IO.BinaryReader reader)
        {
            var result = new WeaponParameters();

            result.MagazineSize = reader.ReadInt32();
            result.FireRate     = reader.ReadDouble();
            result.ReloadTime   = reader.ReadDouble();
            result.MinSpread    = reader.ReadDouble();
            result.MaxSpread    = reader.ReadDouble();
            result.Recoil       = reader.ReadDouble();
            result.AimSpeed     = reader.ReadDouble();
            result.Bullet       = BulletParameters.ReadFrom(reader);
            if (reader.ReadBoolean())
            {
                result.Explosion = ExplosionParameters.ReadFrom(reader);
            }
            else
            {
                result.Explosion = null;
            }
            return(result);
        }
Esempio n. 8
0
 public WeaponParameters(int magazineSize, double fireRate, double reloadTime, double minSpread, double maxSpread, double recoil, double aimSpeed, BulletParameters bullet, ExplosionParameters explosion)
 {
     MagazineSize = magazineSize;
     FireRate     = fireRate;
     ReloadTime   = reloadTime;
     MinSpread    = minSpread;
     MaxSpread    = maxSpread;
     Recoil       = recoil;
     AimSpeed     = aimSpeed;
     Bullet       = bullet ?? throw new System.ArgumentNullException(nameof(bullet));
     Explosion    = explosion;
 }