예제 #1
0
 // Use this for initialization
 void Start()
 {
     myRenderer   = GetComponent <Renderer> ();
     gameInstance = GetComponentInParent <BreakerBehaviour> ();
     bat          = GameObject.FindGameObjectsWithTag("Bat")[0].GetComponent <BatBehaviour>();
     lastUpdate   = Time.fixedTime;
     Reset();
 }
예제 #2
0
 private void OnCollisionEnter2D(Collision2D collision)
 {
     if (collision.gameObject.tag == "Enemy")
     {
         BatBehaviour tempBat = collision.collider.GetComponentInParent <BatBehaviour>();
         if (tempBat != null)
         {
             Debug.Log("A bat killed a part of Frank");
             DestroyBodyPart();
             tempBat.WingSnapped();
         }
     }
 }
예제 #3
0
    // Update is called once per frame
    void Update()
    {
        parentBatBehaviour = GetComponentInParent <BatBehaviour>();
        if (!animCancel)
        {
            GetComponent <Transform>().localEulerAngles = new Vector3(0, 0, angleOffset + ((Mathf.Sin(Time.time * flapFrequency) + 1) / 2) * flapMaxAngle);
        }

        if (wingHp <= 0)
        {
            WingSnap();
        }
    }
예제 #4
0
    void OnTriggerEnter(Collider other)
    {
        //on colliding destroy rocks after its life time
        Destroy(gameObject, rockLifeTime);

        if (other.gameObject.tag.Equals("Destructible"))
        //if (other.tag == "Enemy")
        {
            //play on hit sound
            FindObjectOfType <PlayerSFX>().PlayOnHit();

            dest = other.GetComponent <DestructibleSpawn>();
            dest.spawnRandomItem();
            Destroy(other.gameObject);
        }
        else if (other.gameObject.tag.Equals("Goblin"))//goblin should play death animation
        {
            //play on hit sound
            FindObjectOfType <PlayerSFX>().PlayOnHit();

            goblin = other.gameObject.GetComponent <GoblinBehaviour>();
            goblin.IncrementHits(rockStrength);           //2 hits to kill goblin
            GetComponent <BoxCollider>().enabled = false; //Removing hit collider so it only hits target once.
        }
        else if (other.gameObject.tag.Equals("Pirate"))
        {
            //play on hit sound
            FindObjectOfType <PlayerSFX>().PlayOnHit();

            pirate = other.gameObject.GetComponent <PirateBehaviour>();
            pirate.IncrementHits(rockStrength);//3 hits to kill pirate
            GetComponent <BoxCollider>().enabled = false;
        }
        else if (other.gameObject.tag.Equals("Parrot"))
        {
            //play on hit sound
            FindObjectOfType <PlayerSFX>().PlayOnHit();

            parrot = other.gameObject.GetComponent <ParrotBehaviour>();
            parrot.IncrementHits(rockStrength);//1 hit to kill parrot
            GetComponent <BoxCollider>().enabled = false;
        }
        else if (other.gameObject.tag.Equals("Bat"))
        {
            //play on hit sound
            FindObjectOfType <PlayerSFX>().PlayOnHit();

            bat = other.gameObject.GetComponent <BatBehaviour>();
            bat.IncrementHits(rockStrength);//1 hit to kill bat
            GetComponent <BoxCollider>().enabled = false;
        }
        else if (other.gameObject.tag.Equals("Kraken"))
        {
            other.gameObject.GetComponent <KrakenBehaviour>().IncrementHits(rockStrength);
            GetComponent <BoxCollider>().enabled = false;
        }
        else if (other.gameObject.tag == "Bomb")
        {
            Destroy(other.gameObject);
        }
        //need to check for hits in goblin/ specific enemy instead - as following line disables above behaviors (eg. no longer destroy enemy on hit)
        //GetComponent<BoxCollider>().enabled = false; //Removing hit collider so it only hits target once.
    }