Beispiel #1
0
 public void MarkUsed(FireworksProjectile projectile)
 {
     if (!projectiles.Contains(projectile))
     {
         projectiles.Add(projectile);
     }
 }
Beispiel #2
0
 internal void Kill(FireworksProjectile projectile)
 {
     if (projectiles.Contains(projectile))
     {
         projectiles.Remove(projectile);
         projectile.transform.position = Vector3.down * 200f;
         queue.Enqueue(projectile);
     }
 }
Beispiel #3
0
    public void ShootFirework()
    {
        FireworksProjectile projectile = instance.GetProjectile();

        if (projectile != null)
        {
            projectile.Shoot(base.transform.position, 2f * Vector3.up + Random.insideUnitSphere);
        }
    }
Beispiel #4
0
    public void Shoot()
    {
        FireworksProjectile projectile = Fireworks.instance.GetProjectile();

        if (projectile != null)
        {
            projectile.Shoot(muzzle);
            cooldown = Time.time + 1f;
        }
    }
Beispiel #5
0
 public FireworksProjectile GetProjectile()
 {
     while (queue.Count > 0)
     {
         FireworksProjectile fireworksProjectile = queue.Dequeue();
         if (!projectiles.Contains(fireworksProjectile))
         {
             projectiles.Add(fireworksProjectile);
             return(fireworksProjectile);
         }
     }
     return(null);
 }
Beispiel #6
0
 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();
 }