Esempio n. 1
0
    void HitEnemy(Collider Monster)
    {
        if (Monster.name == "Boss")
        {
            bossControl = Monster.GetComponent <BossControl>();
            Vector3 hitDirection = playerControl.transform.position - bossControl.transform.position;
            hitDirection.Normalize();
            float angle = Mathf.Atan2(hitDirection.y, hitDirection.x) - Mathf.Deg2Rad * (bossControl.transform.eulerAngles.z);
            float dirX  = Mathf.Cos(angle);
            float dirY  = Mathf.Sin(angle);

            if (bossControl.isVulnerable ||
                dirX == 0 && dirY > 0 ||
                dirX > 0 && dirY > 0 && dirY / dirX > 1f / Mathf.Sqrt(3) ||
                dirX < 0 && dirY > 0 && dirY / dirX < -1f / Mathf.Sqrt(3))
            {
                bossControl.stats.health -= damage;
            }
            else
            {
                bossControl.hitInArmor = true;
            }
        }
        else
        {
            aiControl = Monster.gameObject.GetComponent <AIControl> ();
            if (transform.name != "MageFire2(Clone)")
            {
                aiControl.moveBack = 0.08f;
            }
            aiControl.hitDirection  = aiControl.transform.position - playerControl.transform.position;
            aiControl.stats.health -= damage;
        }
        Instantiate(FireHitParticle, new Vector3(transform.position.x, transform.position.y, -0.8f), transform.rotation);
    }
    void OnTriggerEnter2D(Collider2D other)
    {
        Debug.Log("Life is" + life);
        if (other.gameObject.name == "Bullet2(Clone)" || other.gameObject.name == "Bullet2")
        {
            Destroy(other.gameObject);
            Debug.Log("Destroyed Bullet");
            if (life <= 0)
            {
                dead = true;
                anim.Play("Frankenjdead");
                BossControl one = generator.gameObject.GetComponent <BossControl> ();
                one.isGame();
                Destroy(gameObject, deadTime);
            }
            else
            {
                life--;
            }
        }

        if (life == 6)
        {
            waveAttack = true;
        }

        if (life == 3)
        {
            specialAttack = true;
            waveAttack    = false;
        }
    }
Esempio n. 3
0
    void OnTriggerEnter(Collider other)
    {
        Quaternion oppositeBulletRotation = Quaternion.LookRotation(-transform.forward); //transform a direction in a rotation

        switch (other.tag)
        {
        case "Enemy":
            Zombie zommbie = other.GetComponent <Zombie>();
            if (!zommbie.dead)
            {
                zommbie.Damage(10);
                zommbie.BloodParticle(this.transform.position, oppositeBulletRotation);
                _gameManager.ShakeCamera();
            }
            break;

        case "Boss":
        {
            BossControl boss = other.GetComponent <BossControl>();
            if (!boss.dead)
            {
                boss.TakeDamage(1);
                boss.BloodParticle(this.transform.position, oppositeBulletRotation);
                _gameManager.ShakeCamera();
            }
        }
        break;
        }
        Destroy(this.gameObject);
    }
Esempio n. 4
0
 private void Start()
 {
     boss    = this.GetComponentInParent <BossControl>();
     bosshp  = GameObject.Find("BossHPCanvas01").GetComponent <MonsterHP>();
     bossAni = this.GetComponentInParent <Animator>();
     spawnPoint.gameObject.SetActive(false);
     timer = 0f;
     //this.gameObject.SetActive(false);
 }
Esempio n. 5
0
 private void Start()
 {
     Exclamation.SetActive(false);
     bc            = GetComponent <BossControl>();
     escort_object = GameObject.FindWithTag("Escort_Object");
     mage          = GameObject.Find("Mage");
     warrior       = GameObject.Find("Knight");
     bc.target     = escort_object;
     target        = escort_object;
 }
Esempio n. 6
0
    void OnTriggerEnter(Collider Monster)
    {
        if (Monster.name == "Boss")
        {
            if (Monster.tag == "Monsters" && transform.name == "MageFireR01")
            {
                BossControl bossControl = Monster.GetComponent <BossControl>();
                bossControl.stunTime = 3.5f;
            }
            else if (transform.name == "MageFireR02")
            {
                BossControl bossControl  = Monster.GetComponent <BossControl>();
                Vector3     hitDirection = GameObject.Find("Mage").transform.position - bossControl.transform.position;
                hitDirection.Normalize();
                float angle = Mathf.Atan2(hitDirection.y, hitDirection.x) - Mathf.Deg2Rad * (bossControl.transform.eulerAngles.z);
                float dirX  = Mathf.Cos(angle);
                float dirY  = Mathf.Sin(angle);

                if (bossControl.isVulnerable ||
                    dirX == 0 && dirY > 0 ||
                    dirX > 0 && dirY > 0 && dirY / dirX > 1f / Mathf.Sqrt(3) ||
                    dirX < 0 && dirY > 0 && dirY / dirX < -1f / Mathf.Sqrt(3))
                {
                    bossControl.stats.health -= 5f;
                }
                else
                {
                    bossControl.hitInArmor = true;
                }
            }
        }
        else
        {
            if (Monster.tag == "Monsters" && transform.name == "MageFireR01")
            {
                AIControl aiControl = Monster.GetComponent <AIControl>();
                aiControl.stunTime = 3.5f;
            }
            else if (transform.name == "MageFireR02")
            {
                if (Monster.tag == "Monsters")
                {
                    AIControl aiControl = Monster.GetComponent <AIControl>();
                    aiControl.stats.health -= 5f;
                }
                else if (Monster.gameObject.name == "TrainingDummy")
                {
                    Monster.GetComponent <Animator>().SetBool("tookDamage", true);
                    float rotZ = Mathf.Atan2(transform.position.y - Monster.transform.position.y, transform.position.x - Monster.transform.position.x) * Mathf.Rad2Deg;
                    Monster.transform.rotation = Quaternion.Euler(0f, 0f, rotZ - 180);
                }
            }
        }
    }
Esempio n. 7
0
 void Awake()
 {
     if (inst == null)
     {
         inst = this;
     }
     else
     {
         Destroy(gameObject);
     }
 }
Esempio n. 8
0
 private void Awake()
 {
     control = GetComponent <BossControl>();
     anim    = GetComponent <BossAnimation>();
     AwakeReset();
 }
 // Use this for initialization
 void Start()
 {
     control = GetComponent<BossControl>();
 }
Esempio n. 10
0
 // Use this for initialization
 void Start()
 {
     control = GetComponent <BossControl>();
 }
Esempio n. 11
0
 private void Start()
 {
     rangeLine.enabled = false;
     nav     = boss.GetComponent <NavMeshAgent>();
     control = boss.GetComponent <BossControl>();
 }
Esempio n. 12
0
 private void Start()
 {
     playerHP    = GetComponent <PlayerControl>();
     bossControl = GameObject.Find("BossControl");
     bossHP      = GetComponent <BossControl>();
 }