public void MarkUsed(FireworksProjectile projectile) { if (!projectiles.Contains(projectile)) { projectiles.Add(projectile); } }
internal void Kill(FireworksProjectile projectile) { if (projectiles.Contains(projectile)) { projectiles.Remove(projectile); projectile.transform.position = Vector3.down * 200f; queue.Enqueue(projectile); } }
public void ShootFirework() { FireworksProjectile projectile = instance.GetProjectile(); if (projectile != null) { projectile.Shoot(base.transform.position, 2f * Vector3.up + Random.insideUnitSphere); } }
public void Shoot() { FireworksProjectile projectile = Fireworks.instance.GetProjectile(); if (projectile != null) { projectile.Shoot(muzzle); cooldown = Time.time + 1f; } }
public FireworksProjectile GetProjectile() { while (queue.Count > 0) { FireworksProjectile fireworksProjectile = queue.Dequeue(); if (!projectiles.Contains(fireworksProjectile)) { projectiles.Add(fireworksProjectile); return(fireworksProjectile); } } return(null); }
private void Start() { NetGame.instance.preUpdate += OnPreFixedUpdate; queue.Enqueue(prefab); prefab.GetComponent <NetIdentity>().sceneId = 0u; for (int i = 1; i < 20; i++) { FireworksProjectile fireworksProjectile = Object.Instantiate(prefab, Vector3.down * 200f, Quaternion.identity, base.transform); fireworksProjectile.GetComponent <NetIdentity>().sceneId = (uint)i; queue.Enqueue(fireworksProjectile); } StartNetwork(); }