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; }
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; }
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); }
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); }
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; }