Example #1
0
    private void ReceiveSnowball(TargetReceiver receiver, GameObject snowballObj)
    {
        stateMachine.ChangeState("Boss3_Stop");
        //StopAllCoroutines();

        for (int i = 0; i < snowballs.Count;)
        {
            Snowball snowball = snowballs[i];
            snowballs.Remove(snowball);
            Destroy(snowball.gameObject);
        }

        StartCoroutine(FallDown());
    }
Example #2
0
    private void ReceiveTarget(TargetReceiver receiver, GameObject meteor)
    {
        if (currProjectile == null)
        {
            return;
        }
        print("Received " + meteor.name);

        if (ReceiveCount == 0)
        {
            currProjectile.OnHit  -= HitTarget;
            currProjectile.OnMiss -= MissTarget;
            currProjectile         = null;

            GameObject shield = Shields[0];
            Shields.RemoveAt(0);
            Destroy(shield.gameObject);
            Destroy(meteor.gameObject);

            if (Shields.Count == 0)
            {
                Aura.SetActive(false);
                stateMachine.ChangeState("Boss4_MeteorShower");
            }
            else
            {
                StartCoroutine(SpawnProjectileDelay());
            }
        }
        else
        {
            ReceiveCount--;

            Vector3 dir = Vector3.up;
            dir *= ProjectileImpulse;

            //currProjectile.SpeedOverTime -= .01f;

            currProjectile.Hit(this.gameObject, dir);
        }
    }