Example #1
0
    private void Attack()
    {
        if (cooldownRemaining < 0.0f)
        {
            animator.SetTrigger("OnAttack");
            KnightEnemy knight = target.GetComponent <KnightEnemy>();

            audioSource.clip = blips[Random.Range(0, blips.Count - 1)];
            audioSource.Play();

            if (knight != null)
            {
                bool dead = knight.TakeDamage(damage, this);
                if (dead)
                {
                    target = null;
                    // check in case any other potential targets close by
                    Collider2D[] hitColliders = Physics2D.OverlapCircleAll(transform.position, aggroCollider.radius);
                    int          i            = 0;
                    while (i < hitColliders.Length)
                    {
                        if (hitColliders[i].GetComponent <KnightEnemy>())
                        {
                            target = hitColliders[i].GetComponent <MonoBehaviour>();
                            break;
                        }
                        i++;
                    }
                }
            }
            cooldownRemaining = attackCooldown;
        }
    }
Example #2
0
    // Update is called once per frame
    void Update()
    {
        if (music.volume < 0.6f)
        {
            music.volume += musicFadeUpSpeed * Time.deltaTime;
        }

        if (Input.GetMouseButtonDown(0))
        {
            Vector2 target = Camera.main.ScreenToWorldPoint(Input.mousePosition);

            // is it an enemy?
            Collider2D[] hitColliders = Physics2D.OverlapCircleAll(target, 2.0f);
            int          i            = 0;
            while (i < hitColliders.Length)
            {
                KnightEnemy knight = hitColliders[i].GetComponent <KnightEnemy>();
                if (knight != null)
                {
                    // send the horde!
                    for (int j = 0; j < knightFriendlies.Count; j++)
                    {
                        knightFriendlies[j].GoToTarget(knight);
                    }
                    return;
                }
                i++;
            }

            // send the horde!
            for (int j = 0; j < knightFriendlies.Count; j++)
            {
                knightFriendlies[j].GoToPosition(target);
            }
        }
    }
    //private BoxCollider2D moveTerritory;

    void Awake()
    {
        slimeEnemy  = GetComponent <RedSlimeEnemy> ();
        knightEnemy = GetComponent <KnightEnemy> ();
        //moveTerritory = GetComponent<BoxCollider2D> ();
    }
Example #4
0
 internal void GoToTarget(KnightEnemy knight)
 {
     target = knight;
 }