コード例 #1
0
    private void OnTriggerEnter(Collider other)
    {
        Collider[] colliders = Physics.OverlapSphere(transform.position, m_ExplosionRadius, m_HitMask);

        for (int i = 0; i < colliders.Length; i++)
        {
            Rigidbody targetRigidBody = colliders[i].GetComponentInParent <Rigidbody>();

            if (!targetRigidBody)
            {
                continue;
            }
            targetRigidBody.AddExplosionForce(m_ExplosionForce, transform.position, m_ExplosionRadius);

            float damage = CalculateDamage(targetRigidBody.position);
            if (targetRigidBody == null)
            {
                BlockCharacterLife causeDDD = targetRigidBody.GetComponentInParent <BlockCharacterLife>();
                if (causeDDD != null)
                {
                    causeDDD.shots += (int)damage;
                }
            }
            else
            {
                targetRigidBody.GetComponentInParent <Rigidbody> ().AddExplosionForce(m_ExplosionForce, transform.position, m_ExplosionRadius, 5.9f, ForceMode.Impulse);

                CauseDamageDestroy causeDD = targetRigidBody.GetComponentInParent <CauseDamageDestroy>();
                if (causeDD != null)
                {
                    causeDD.shots += (int)damage;
                }
                BlockCharacterLife causeDDDD = targetRigidBody.GetComponentInParent <BlockCharacterLife>();
                if (causeDDDD != null)
                {
                    causeDDDD.shots += (int)damage;
                }
                BlockCharacterLife causeNinja = targetRigidBody.GetComponent <BlockCharacterLife>();
                if (causeNinja != null)
                {
                    causeNinja.shots += (int)damage;
                }
                PoppyLife popLife = targetRigidBody.GetComponent <PoppyLife> ();
                if (popLife != null)
                {
                    popLife.shots += (int)damage;
                }
                EnemyHealth1 enemyHealth = targetRigidBody.GetComponentInParent <EnemyHealth1> ();
                if (enemyHealth != null)
                {
                    enemyHealth.TakeDamage((int)(damage * damageBooster), targetRigidBody.transform.position);
                }
            }
        }
//		m_ExplosionParticles.transform.transform.parent = null;
//		m_ExplosionParticles.Play ();
//		m_ExplosionAudio.Play ();
//		Destroy (m_ExplosionParticles.gameObject, m_ExplosionParticles.duration);
        Destroy(gameObject);
    }
コード例 #2
0
    //public GameObject explosion;

    void OnTriggerEnter(Collider gotEm)
    {
        if (gotEm)
        {
            Collider[] colliders = Physics.OverlapSphere(transform.position, radius);

            foreach (Collider c in colliders)
            {
                if (c.GetComponent <Rigidbody> () == null)
                {
                    continue;
                }

                c.GetComponent <Rigidbody> ().AddExplosionForce(force, transform.position, radius, 5.9f, ForceMode.Impulse);
            }

            foreach (Collider c in colliders)
            {
                if (c.GetComponentInParent <Rigidbody> () == null)
                {
                    BlockCharacterLife causeDDD = c.GetComponentInParent <BlockCharacterLife>();
                    if (causeDDD != null)
                    {
                        causeDDD.shots += 6;
                    }
                }
                else
                {
                    c.GetComponentInParent <Rigidbody> ().AddExplosionForce(force, transform.position, radius, 5.9f, ForceMode.Impulse);

                    CauseDamageDestroy causeDD = c.GetComponentInParent <CauseDamageDestroy>();
                    if (causeDD != null)
                    {
                        causeDD.shots += 30;
                    }
                    BlockCharacterLife causeDDDD = c.GetComponentInParent <BlockCharacterLife>();
                    if (causeDDDD != null)
                    {
                        causeDDDD.shots += 6;
                    }
                    PoppyLife popLife = c.GetComponent <PoppyLife> ();
                    if (popLife != null)
                    {
                        popLife.shots += 10;
                    }
                    EnemyHealth1 enemyHealth = c.GetComponentInParent <EnemyHealth1> ();
                    if (enemyHealth != null)
                    {
                        enemyHealth.TakeDamage(damage * damageBooster, c.transform.position);
                    }
                }
                //continue;
            }

            //Instantiate(explosion, transform.position, Quaternion.identity);

            Destroy(this.gameObject);
        }
    }
コード例 #3
0
 void Awake()
 {
     causeDD       = GetComponent <CauseDamageDestroy> ();
     persistentobj = GameObject.Find("PersistThroughScenes");
     if (persistentobj != null)
     {
         persistScript = persistentobj.GetComponent <PersistThroughScenes> ();
     }
 }
コード例 #4
0
    void FixedUpdate()
    {
//		Debug.Log (fireRotation);
        if (shooting)
        {
            fireTime += Time.deltaTime;

            shooting = false;

            RaycastHit hit;

            Vector3 fireDirection = bulletSpawn.forward;

            fireRotation = Quaternion.LookRotation(fireDirection);

            Quaternion randomRotation = Random.rotation;

            float currentSpread = Mathf.Lerp(0.0f, maxBulletSpreadAngle, fireTime / timeToSpread);

            fireRotation = Quaternion.RotateTowards(fireRotation, randomRotation, Random.Range(0.0f, currentSpread));
            if (Physics.Raycast(bulletSpawn.position, fireRotation * Vector3.forward, out hit, distance, myLayMask))
            {
                if (hit.transform.tag == "Cover")
                {
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                }

                if (hit.transform.tag == "Environment")
                {
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                }

                if (hit.transform.tag == "Target Practice")
                {
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }

                    CauseDamage        causeD  = hit.transform.GetComponent <CauseDamage>();
                    CauseDamageDestroy causeDD = hit.transform.GetComponentInParent <CauseDamageDestroy>();

                    if (causeD.addPoints >= 125 && causeD.addPoints <= 400)
                    {
                        HUDScoreText.currentScore += 125;
                    }
                    if (causeD.addPoints >= 401 && causeD.addPoints <= 1001)
                    {
                        HUDScoreText.currentScore += 1000;
                    }
                    else if (causeD.addPoints >= 100 && causeD.addPoints <= 124)
                    {
                        HUDScoreText.currentScore += 100;
                    }
                    else if (causeD.addPoints >= 26 && causeD.addPoints <= 99)
                    {
                        HUDScoreText.currentScore += 50;
                    }
                    else if (causeD.addPoints >= 6 && causeD.addPoints <= 25)
                    {
                        HUDScoreText.currentScore += 25;
                    }
                    else if (causeD.addPoints >= 2 && causeD.addPoints <= 5)
                    {
                        HUDScoreText.currentScore += 5;
                    }
                    else if (causeD.addPoints >= 1 && causeD.addPoints <= 2)
                    {
                        HUDScoreText.currentScore += 1;
                    }
                    causeDD.shots++;
                }

                else if (hit.collider.tag == "TutorialDoors")
                {
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    CauseDamageDestroy causeDD = hit.transform.GetComponentInParent <CauseDamageDestroy>();
                    if (causeDD != null)
                    {
                        causeDD.shots++;
                    }
                }

                else if (hit.collider.tag == "Head")
                {
                    GameMasterObject.totalHeadShots++;
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    BlockCharacterLife blockCharLife = hit.transform.GetComponentInParent <BlockCharacterLife>();
                    if (blockCharLife != null)
                    {
                        blockCharLife.shots  += 7;
                        blockCharLife.gotShot = true;
                    }

                    EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                    if (enemyHealth != null)
                    {
                        enemyHealth.TakeDamage(headDamage * attackBooster, hit.transform.position);
                        //hit.rigidbody.AddForceAtPosition(new Vector3(Random.Range(1,10), Random.Range(1, 10), Random.Range(1, 10)) * 10, hit.transform.position);
                    }
                }

                else if (hit.collider.tag == "Doors")
                {
                    //hit.rigidbody.AddForceAtPosition(new Vector3(Random.Range(1,10), Random.Range(1, 10), Random.Range(1, 10)) * 100, hit.transform.position);
                }

                else if (hit.collider.tag == "Body")
                {
                    GameMasterObject.totalBodyShots++;
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    BlockCharacterLife blockCharLife = hit.transform.GetComponentInParent <BlockCharacterLife>();
                    if (blockCharLife != null)
                    {
                        blockCharLife.shots  += 4;
                        blockCharLife.gotShot = true;
                    }

                    EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                    if (enemyHealth != null)
                    {
                        enemyHealth.TakeDamage(bodyDamage * attackBooster, hit.transform.position);
                        //hit.rigidbody.AddForceAtPosition(new Vector3(Random.Range(1,10), Random.Range(1, 10), Random.Range(1, 10)) * 10, hit.transform.position);
                    }
                }
                else if (hit.collider.tag == "Weapon")
                {
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    RocketDamage rocketDamage = hit.collider.GetComponent <RocketDamage> ();
                    if (rocketDamage != null)
                    {
                        rocketDamage.TakeDamage(3 * attackBooster);
                    }
                }

                else if (hit.collider.tag == "Poppy")
                {
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    PoppyLife poppyLife = hit.collider.GetComponent <PoppyLife> ();
                    if (poppyLife != null)
                    {
                        poppyLife.TakeDamage(1);
                    }
                }

                else if (hit.collider.tag == "Bobby")
                {
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    PoppyLife poppyLife = hit.collider.GetComponent <PoppyLife> ();
                    if (poppyLife != null)
                    {
                        poppyLife.TakeDamage(75);
                    }
                    PoppyLife poppyLife2 = hit.collider.GetComponentInParent <PoppyLife> ();
                    if (poppyLife2 != null)
                    {
                        poppyLife2.TakeDamage(75);
                    }
                }
                else if (hit.collider.tag == "Mask")
                {
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    TalkingHeadLife headLift = hit.collider.GetComponent <TalkingHeadLife> ();
                    if (headLift != null)
                    {
                        headLift.TakeDamage(75);
                    }
                }
                else if (hit.collider.tag == "Legs")
                {
                    GameMasterObject.totalLegShots++;
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    BlockCharacterLife blockCharlife = hit.transform.GetComponentInParent <BlockCharacterLife>();
                    if (blockCharlife != null)
                    {
                        blockCharlife.shots += 3;
                    }

                    EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                    if (enemyHealth != null)
                    {
                        enemyHealth.TakeDamage(legDamage * attackBooster, hit.transform.position);
                        //hit.rigidbody.AddForceAtPosition(new Vector3(Random.Range(1,10), Random.Range(1, 10), Random.Range(1, 10)) * 10, hit.transform.position);
                    }
                }

                else if (hit.collider.tag == "Arms")
                {
                    GameMasterObject.totalArmShots++;
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    BlockCharacterLife blockCharlife = hit.transform.GetComponentInParent <BlockCharacterLife>();
                    if (blockCharlife != null)
                    {
                        blockCharlife.shots += 2;
                    }

                    EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                    if (enemyHealth != null)
                    {
                        enemyHealth.TakeDamage(armDamage * attackBooster, hit.transform.position);
                        //hit.rigidbody.AddForceAtPosition(new Vector3(Random.Range(1,10), Random.Range(1, 10), Random.Range(1, 10)) * 10, hit.transform.position);
                    }
                }
            }
        }
    }
コード例 #5
0
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Body" && ableToEffect)
        {
            BlockCharacterLife blockCharLife = other.transform.GetComponentInParent <BlockCharacterLife>();
            if (blockCharLife != null)
            {
                blockCharLife.shots += 250;
            }
            EnemyHealth1 enemyHealth = other.gameObject.GetComponentInParent <EnemyHealth1> ();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(damage * meleeDamage, other.transform.position);
            }
            gotHit      = true;
            sounds.clip = hits [Random.Range(0, hits.Length - 1)];
            sounds.Play();
            sound2.Play();
        }
        else if (other.transform.tag == "TutorialDoors" && ableToEffect)
        {
            CauseDamageDestroy causeDD = other.transform.GetComponentInParent <CauseDamageDestroy>();
            if (causeDD != null)
            {
                causeDD.shots += 2;
            }
            sounds.clip = hits [Random.Range(0, hits.Length - 1)];
            sounds.Play();
            sound2.Play();
        }
        else if (other.transform.tag == "Tower Turret" && ableToEffect)
        {
            CauseDamageDestroy causeDD = other.transform.GetComponentInParent <CauseDamageDestroy>();
            if (causeDD != null)
            {
                causeDD.shots += 200;
            }
            sounds.clip = hits [Random.Range(0, hits.Length - 1)];
            sounds.Play();
            sound2.Play();
        }

        if (other.gameObject.tag == "Head" && ableToEffect)
        {
            BlockCharacterLife blockCharLife = other.transform.GetComponentInParent <BlockCharacterLife>();
            if (blockCharLife != null)
            {
                blockCharLife.shots += 250;
            }
            EnemyHealth1 enemyHealth = other.gameObject.GetComponentInParent <EnemyHealth1> ();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(damage * meleeDamage, other.transform.position);
            }
            gotHit      = true;
            sounds.clip = hits [Random.Range(0, hits.Length - 1)];
            sounds.Play();
            sound2.Play();
        }

        if (other.gameObject.tag == "Enemy" && ableToEffect)
        {
            BlockCharacterLife blockCharLife = other.transform.GetComponentInParent <BlockCharacterLife>();
            if (blockCharLife != null)
            {
                blockCharLife.shots += 50;
            }
            EnemyHealth1 enemyHealth = other.gameObject.GetComponentInParent <EnemyHealth1> ();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(damage * meleeDamage, other.transform.position);
            }
            gotHit      = true;
            sounds.clip = hits [Random.Range(0, hits.Length - 1)];
            sounds.Play();
            sound2.Play();
        }

        if (other.gameObject.tag == "Arms" && ableToEffect)
        {
            BlockCharacterLife blockCharLife = other.transform.GetComponentInParent <BlockCharacterLife>();
            if (blockCharLife != null)
            {
                blockCharLife.shots += 250;
            }
            EnemyHealth1 enemyHealth = other.gameObject.GetComponentInParent <EnemyHealth1> ();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(damage * meleeDamage, other.transform.position);
            }
            gotHit      = true;
            sounds.clip = hits [Random.Range(0, hits.Length - 1)];
            sounds.Play();
            sound2.Play();
        }

        if (other.gameObject.tag == "Legs" && ableToEffect)
        {
            BlockCharacterLife blockCharLife = other.transform.GetComponentInParent <BlockCharacterLife>();
            if (blockCharLife != null)
            {
                blockCharLife.shots += 250;
            }
            EnemyHealth1 enemyHealth = other.gameObject.GetComponentInParent <EnemyHealth1> ();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(damage * meleeDamage, other.transform.position);
            }
            gotHit      = true;
            sounds.clip = hits [Random.Range(0, hits.Length - 1)];
            sounds.Play();
            sound2.Play();
        }
    }
コード例 #6
0
    void OnCollisionEnter(Collision other)
    {
        if (other.gameObject.tag == "Player")
        {
            PlayerHealth1 playerHealth = other.gameObject.GetComponent <PlayerHealth1> ();
            if (playerHealth != null)
            {
                HUDHealthScript.timer = 0;
                if (playerHealth.currentHealth > 0 && playerHealth.currentHealth <= playerHealth.startingHealth)
                {
                    playerHealth.TakeDamage(attackDamage * enemyAttackBoost);
                    if (GameMasterObject.dannyActive)
                    {
                        DannyCameraShake.InstanceD1.ShakeD1(amplitude, duration);
                    }
                    else if (GameMasterObject.strongmanActive)
                    {
                        CameraShake.InstanceSM1.ShakeSM1(amplitude, duration);
                    }
                }
                else if (playerHealth.currentHealth > 0 && playerHealth.currentHealth >= playerHealth.startingHealth + 1)
                {
                    playerHealth.TakeArmorDamage(attackDamage * enemyAttackBoost);
                    if (GameMasterObject.dannyActive)
                    {
                        DannyCameraShake.InstanceD1.ShakeD1(amplitude, duration);
                    }
                    else if (GameMasterObject.strongmanActive)
                    {
                        CameraShake.InstanceSM1.ShakeSM1(amplitude, duration);
                    }
                }
            }
        }
        if (other.gameObject.tag == "Ally")
        {
            DannyDecoyLifeScript decoyLife = other.gameObject.GetComponent <DannyDecoyLifeScript> ();
            if (decoyLife != null)
            {
                decoyLife.shots++;
            }
        }
        if (other.gameObject.tag == "Tower Turret")
        {
            CauseDamageDestroy causeDD = other.gameObject.GetComponent <CauseDamageDestroy> ();
            if (causeDD != null)
            {
                causeDD.shots += 15;
            }
        }

        if (other.gameObject.tag == "Cover")
        {
            Destroy(this.gameObject);
        }

        else
        {
            Destroy(this.gameObject);
        }

        Destroy(this.gameObject);
    }
コード例 #7
0
    void OnTriggerEnter(Collider gotEm)
    {
        if (gotEm && !hitYet)
        {
            //sounds.PlayOneShot (groundHit);
            CameraShake.InstanceSM1.ShakeSM1(amplitude, duration);
            Collider[] cols = Physics.OverlapSphere(transform.position, radius /*, m_HitMask*/);

            for (int i = 0; i < cols.Length; i++)
            {
                Rigidbody targetRigidBody = cols[i].GetComponentInParent <Rigidbody>();

                if (!targetRigidBody)
                {
                    //continue;
                    BlockCharacterLife causeDDD = cols[i].GetComponentInParent <BlockCharacterLife>();
                    if (causeDDD != null)
                    {
                        causeDDD.shots += damage;
                    }
                    continue;
                }
                targetRigidBody.AddExplosionForce(force, transform.position, radius);

                if (targetRigidBody != null)
                {
                    targetRigidBody.GetComponentInParent <Rigidbody> ().AddExplosionForce(force, transform.position, radius, 5.9f, ForceMode.Impulse);
//					impacts[currentImpact].transform.position = targetRigidBody.transform.position;
//					impacts[currentImpact].GetComponent<ParticleSystem>().Play();
//
//					if(++currentImpact >= maxImpacts)
//					{
//						currentImpact = 0;
//					}

                    CauseDamageDestroy causeDD = targetRigidBody.GetComponentInParent <CauseDamageDestroy>();
                    if (causeDD != null)
                    {
                        causeDD.shots += damage;
                    }
                    RocketDamage rocketDamage = targetRigidBody.GetComponent <RocketDamage> ();
                    if (rocketDamage != null)
                    {
                        rocketDamage.shots += damage;
                    }
                    BlockCharacterLife causeDDDD = targetRigidBody.GetComponentInParent <BlockCharacterLife>();
                    if (causeDDDD != null)
                    {
                        causeDDDD.shots += damage;
                    }
                    BlockCharacterLife causeNinja = targetRigidBody.GetComponent <BlockCharacterLife>();
                    if (causeNinja != null)
                    {
                        causeNinja.shots += damage;
                    }
                    PoppyLife popLife = targetRigidBody.GetComponent <PoppyLife> ();
                    if (popLife != null)
                    {
                        popLife.TakeDamage(365 * damageBooster);
                    }
                    TalkingHeadLife headLife = targetRigidBody.GetComponent <TalkingHeadLife> ();
                    if (headLife != null)
                    {
                        headLife.TakeDamage(365 * damageBooster);
                    }
                    EnemyHealth1 enemyHealth = targetRigidBody.GetComponentInParent <EnemyHealth1> ();
                    if (enemyHealth != null)
                    {
                        enemyHealth.TakeDamage(damage * damageBooster, cols[i].transform.position);
                    }
                }
            }
            hitYet = true;

            Instantiate(impactToUse, instanPoint.position, Quaternion.identity);
            this.gameObject.SetActive(false);
        }
    }
コード例 #8
0
    void OnCollisionEnter(Collision other)
    {
//		Debug.Log (other.collider.tag);
        if (other.gameObject.tag == "Enemy")
        {
            EnemyHealth1 enemyHealth = other.gameObject.GetComponent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
                destroyThis = true;
            }
        }
        else if (other.gameObject.tag == "Player")
        {
            PlayerHealth1 playerHealth = other.gameObject.GetComponent <PlayerHealth1>();
            if (playerHealth != null)
            {
                playerHealth.TakeDamage(attackDamage * attackBoost);
                if (GameMasterObject.dannyActive)
                {
                    DannyCameraShake.InstanceD1.ShakeD1(amplitude, duration);
                }
                else if (GameMasterObject.strongmanActive)
                {
                    CameraShake.InstanceSM1.ShakeSM1(amplitude, duration);
                }
                HUDHealthScript.timer = 0;
                Instantiate(explosion, transform.position, transform.rotation);
                destroyThis = true;
            }
        }
        else if (other.gameObject.tag == "Body")
        {
            EnemyHealth1 enemyHealth = other.gameObject.GetComponentInParent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
                destroyThis = true;
            }

            BlockCharacterLife blockLife = other.gameObject.GetComponent <BlockCharacterLife> ();
            if (blockLife != null)
            {
                blockLife.shots += 75;
            }
            BlockCharacterLife blockLife2 = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife2 != null)
            {
                blockLife2.shots += 75;
            }
            destroyThis = true;
        }
        else if (other.collider.tag == "Body")
        {
            Debug.Log(other.collider.tag);
            EnemyHealth1 enemyHealth = other.gameObject.GetComponentInParent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
                destroyThis = true;
            }

            BlockCharacterLife blockLife = other.gameObject.GetComponent <BlockCharacterLife> ();
            if (blockLife != null)
            {
                blockLife.shots += 75;
            }
            BlockCharacterLife blockLife2 = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife2 != null)
            {
                blockLife2.shots += 75;
            }
            destroyThis = true;
        }
        else if (other.collider.tag == "Head")
        {
            EnemyHealth1 enemyHealth = other.gameObject.GetComponentInParent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
                destroyThis = true;
            }
            BlockCharacterLife blockLife = other.gameObject.GetComponent <BlockCharacterLife> ();
            if (blockLife != null)
            {
                blockLife.shots += 150;
            }
            BlockCharacterLife blockLife2 = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife2 != null)
            {
                blockLife2.shots += 150;
            }
            destroyThis = true;
        }
        else if (other.collider.tag == "Arms")
        {
            EnemyHealth1 enemyHealth = other.gameObject.GetComponentInParent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
                destroyThis = true;
            }
            BlockCharacterLife blockLife = other.gameObject.GetComponent <BlockCharacterLife> ();
            if (blockLife != null)
            {
                blockLife.shots += 10;
            }
            BlockCharacterLife blockLife2 = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife2 != null)
            {
                blockLife2.shots += 10;
            }
            destroyThis = true;
        }
        else if (other.collider.tag == "Target Practice")
        {
            CauseDamage        causeD  = other.collider.transform.GetComponent <CauseDamage>();
            CauseDamageDestroy causeDD = other.gameObject.GetComponentInParent <CauseDamageDestroy>();

            if (causeD.addPoints >= 125 && causeD.addPoints <= 400)
            {
                HUDScoreText.currentScore += 125;
            }
            if (causeD.addPoints >= 401 && causeD.addPoints <= 1001)
            {
                HUDScoreText.currentScore += 1000;
            }
            else if (causeD.addPoints >= 100 && causeD.addPoints <= 124)
            {
                HUDScoreText.currentScore += 100;
            }
            else if (causeD.addPoints >= 26 && causeD.addPoints <= 99)
            {
                HUDScoreText.currentScore += 50;
            }
            else if (causeD.addPoints >= 6 && causeD.addPoints <= 25)
            {
                HUDScoreText.currentScore += 25;
            }
            else if (causeD.addPoints >= 2 && causeD.addPoints <= 5)
            {
                HUDScoreText.currentScore += 5;
            }
            else if (causeD.addPoints >= 1 && causeD.addPoints <= 2)
            {
                HUDScoreText.currentScore += 1;
            }
            causeDD.shots++;
            destroyThis = true;
        }
        else if (other.collider.tag == "Poppy")
        {
            PoppyLife poppyLife = other.gameObject.GetComponent <PoppyLife> ();
            if (poppyLife != null)
            {
                poppyLife.TakeDamage(attackDamage);
            }
            destroyThis = true;
        }
        else if (other.collider.tag == "Bobby")
        {
            PoppyLife poppyLife = other.gameObject.GetComponent <PoppyLife> ();
            if (poppyLife != null)
            {
                poppyLife.TakeDamage(attackDamage * 2);
            }
            destroyThis = true;
        }
        else if (other.collider.tag == "Legs")
        {
            EnemyHealth1 enemyHealth = other.gameObject.GetComponentInParent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
                destroyThis = true;
            }
            BlockCharacterLife blockLife = other.gameObject.GetComponent <BlockCharacterLife> ();
            if (blockLife != null)
            {
                blockLife.shots += 10;
            }
            BlockCharacterLife blockLife2 = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife2 != null)
            {
                blockLife2.shots += 10;
            }
            destroyThis = true;
        }
        else if (other.gameObject.tag == "Shield")
        {
            Destroy(this.gameObject);
            Instantiate(explosion, transform.position, transform.rotation);
        }
        else
        {
            Destroy(this.gameObject);
//			Instantiate (explosion, transform.position, transform.rotation);
        }
        //Destroy (this.gameObject);
    }
コード例 #9
0
    void FixedUpdate()
    {
        if (shooting)
        {
            shooting = false;

            RaycastHit hit;

            if (Physics.Raycast(bulletSpawn.position, bulletSpawn.forward, out hit, distance, myLayerMask))
            {
//				Debug.Log (hit.collider.tag);
                if (hit.transform.tag == "Cover")
                {
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                }

                if (hit.transform.tag == "Environment")
                {
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                }

                if (hit.transform.tag == "Target Practice")
                {
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }

                    CauseDamage        causeD  = hit.transform.GetComponent <CauseDamage>();
                    CauseDamageDestroy causeDD = hit.transform.GetComponentInParent <CauseDamageDestroy>();

                    if (causeD.addPoints >= 125 && causeD.addPoints <= 400)
                    {
                        HUDScoreText.currentScore += 125;
                    }
                    if (causeD.addPoints >= 401 && causeD.addPoints <= 1001)
                    {
                        HUDScoreText.currentScore += 1000;
                    }
                    else if (causeD.addPoints >= 100 && causeD.addPoints <= 124)
                    {
                        HUDScoreText.currentScore += 100;
                    }
                    else if (causeD.addPoints >= 26 && causeD.addPoints <= 99)
                    {
                        HUDScoreText.currentScore += 50;
                    }
                    else if (causeD.addPoints >= 6 && causeD.addPoints <= 25)
                    {
                        HUDScoreText.currentScore += 25;
                    }
                    else if (causeD.addPoints >= 2 && causeD.addPoints <= 5)
                    {
                        HUDScoreText.currentScore += 5;
                    }
                    else if (causeD.addPoints >= 1 && causeD.addPoints <= 2)
                    {
                        HUDScoreText.currentScore += 1;
                    }
                    causeDD.shots += 1 * attackBooster;
                }

                else if (hit.collider.tag == "TutorialDoors")
                {
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    CauseDamageDestroy causeDD = hit.transform.GetComponentInParent <CauseDamageDestroy>();
                    if (causeDD != null)
                    {
                        causeDD.shots += 2 * attackBooster;
                    }
                }

                else if (hit.collider.tag == "Head")
                {
                    GameMasterObject.totalHeadShots++;
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    BlockCharacterLife blockCharLife = hit.transform.GetComponentInParent <BlockCharacterLife>();
                    if (blockCharLife != null)
                    {
                        blockCharLife.shots  += 15 * attackBooster;
                        blockCharLife.gotShot = true;
                    }

                    EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                    if (enemyHealth != null)
                    {
                        enemyHealth.TakeDamage(headDamage * attackBooster, hit.transform.position);
                        //hit.rigidbody.AddForceAtPosition(new Vector3(Random.Range(1,10), Random.Range(1, 10), Random.Range(1, 10)) * 10, hit.transform.position);
                    }
                }
                else if (hit.collider.tag == "Weapon")
                {
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    RocketDamage rocketDamage = hit.collider.GetComponent <RocketDamage> ();
                    if (rocketDamage != null)
                    {
                        rocketDamage.TakeDamage(6 * attackBooster);
                    }
                }

                else if (hit.collider.tag == "Poppy")
                {
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    PoppyLife poppyLife = hit.collider.GetComponent <PoppyLife> ();
                    if (poppyLife != null)
                    {
                        poppyLife.TakeDamage(2 * attackBooster);
                    }
                }

                else if (hit.collider.tag == "Bobby")
                {
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    PoppyLife poppyLife = hit.collider.GetComponent <PoppyLife> ();
                    if (poppyLife != null)
                    {
                        poppyLife.TakeDamage(125 * attackBooster);
                    }
                    PoppyLife poppyLife2 = hit.collider.GetComponentInParent <PoppyLife> ();
                    if (poppyLife2 != null)
                    {
                        poppyLife2.TakeDamage(125 * attackBooster);
                    }
                }
                else if (hit.collider.tag == "Mask")
                {
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    TalkingHeadLife headLift = hit.collider.GetComponent <TalkingHeadLife> ();
                    if (headLift != null)
                    {
                        headLift.TakeDamage(75 * attackBooster);
                    }
                }

                else if (hit.collider.tag == "Body")
                {
                    GameMasterObject.totalBodyShots++;
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    BlockCharacterLife blockCharLife = hit.collider.transform.GetComponentInParent <BlockCharacterLife>();
                    if (blockCharLife != null)
                    {
                        blockCharLife.shots  += 5 * attackBooster;
                        blockCharLife.gotShot = true;
                    }

                    EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                    if (enemyHealth != null)
                    {
                        enemyHealth.TakeDamage(bodyDamage * attackBooster, hit.transform.position);
                        //other.rigidbody.AddForceAtPosition(Vector3.forward * 10, other.transform.position);
                    }
                }

                else if (hit.collider.tag == "Legs")
                {
                    GameMasterObject.totalLegShots++;
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    BlockCharacterLife blockCharLife = hit.transform.GetComponentInParent <BlockCharacterLife>();
                    if (blockCharLife != null)
                    {
                        blockCharLife.shots += 4 * attackBooster;
                    }

                    EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                    if (enemyHealth != null)
                    {
                        enemyHealth.TakeDamage(legDamage * attackBooster, hit.transform.position);
                        //other.rigidbody.AddForceAtPosition(Vector3.forward * 10, other.transform.position);
                    }
                }

                else if (hit.collider.tag == "Arms")
                {
                    GameMasterObject.totalArmShots++;
                    GameMasterObject.totalHitShots++;
                    impacts[currentImpact].transform.position = hit.point;
                    impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                    if (++currentImpact >= maxImpacts)
                    {
                        currentImpact = 0;
                    }
                    BlockCharacterLife blockCharLife = hit.transform.GetComponentInParent <BlockCharacterLife>();
                    if (blockCharLife != null)
                    {
                        blockCharLife.shots += 3 * attackBooster;
                    }

                    EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                    if (enemyHealth != null)
                    {
                        enemyHealth.TakeDamage(armDamage * attackBooster, hit.transform.position);
                        //other.rigidbody.AddForceAtPosition(Vector3.forward * 10, other.transform.position);
                    }
                }
            }
        }
    }
コード例 #10
0
ファイル: RockNetwork.cs プロジェクト: jdelaay025/Joyful-Game
    void OnCollisionEnter(Collision other)
    {
//		Debug.Log (other.collider.tag);
        if (other.collider.tag == "Enemy")
        {
            EnemyHealth1 enemyHealth = other.gameObject.GetComponent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
            }
        }
        if (other.collider.tag == "Body")
        {
//			Debug.Log ("body");
            EnemyHealth1 enemyHealth = other.collider.GetComponentInParent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
            }

            BlockCharacterLife blockLife = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife != null)
            {
//				Debug.Log ("notnull2");
                blockLife.shots += 75;
            }
            BlockCharacterLife blockLife2 = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife2 != null)
            {
//				Debug.Log ("notnull2");
                blockLife2.shots += 75;
            }
        }
        else if (other.collider.tag == "Head")
        {
            EnemyHealth1 enemyHealth = other.collider.GetComponentInParent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
            }
            BlockCharacterLife blockLife = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife != null)
            {
                blockLife.shots += 150;
            }
            BlockCharacterLife blockLife2 = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife2 != null)
            {
                blockLife2.shots += 150;
            }
        }
        else if (other.collider.tag == "Arms")
        {
            EnemyHealth1 enemyHealth = other.collider.GetComponentInParent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
            }
            BlockCharacterLife blockLife = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife != null)
            {
                blockLife.shots += 10;
            }
            BlockCharacterLife blockLife2 = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife2 != null)
            {
                blockLife2.shots += 10;
            }
        }
        else if (other.collider.tag == "Target Practice")
        {
            CauseDamage        causeD  = other.collider.transform.GetComponent <CauseDamage>();
            CauseDamageDestroy causeDD = other.gameObject.GetComponentInParent <CauseDamageDestroy>();

            if (causeD.addPoints >= 125 && causeD.addPoints <= 400)
            {
                HUDScoreText.currentScore += 125;
            }
            if (causeD.addPoints >= 401 && causeD.addPoints <= 1001)
            {
                HUDScoreText.currentScore += 1000;
            }
            else if (causeD.addPoints >= 100 && causeD.addPoints <= 124)
            {
                HUDScoreText.currentScore += 100;
            }
            else if (causeD.addPoints >= 26 && causeD.addPoints <= 99)
            {
                HUDScoreText.currentScore += 50;
            }
            else if (causeD.addPoints >= 6 && causeD.addPoints <= 25)
            {
                HUDScoreText.currentScore += 25;
            }
            else if (causeD.addPoints >= 2 && causeD.addPoints <= 5)
            {
                HUDScoreText.currentScore += 5;
            }
            else if (causeD.addPoints >= 1 && causeD.addPoints <= 2)
            {
                HUDScoreText.currentScore += 1;
            }
            causeDD.shots++;
        }
        else if (other.collider.tag == "Poppy")
        {
            PoppyLife poppyLife = other.gameObject.GetComponent <PoppyLife> ();
            if (poppyLife != null)
            {
                poppyLife.TakeDamage(attackDamage);
            }
        }
        else if (other.collider.tag == "Bobby")
        {
            PoppyLife poppyLife = other.gameObject.GetComponent <PoppyLife> ();
            if (poppyLife != null)
            {
                poppyLife.TakeDamage(attackDamage * 2);
            }
        }
        else if (other.collider.tag == "Legs")
        {
            EnemyHealth1 enemyHealth = other.collider.GetComponentInParent <EnemyHealth1>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(attackDamage * attackBoost, other.transform.position);
                Instantiate(explosion, transform.position, transform.rotation);
            }
            BlockCharacterLife blockLife = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife != null)
            {
                blockLife.shots += 10;
            }
            BlockCharacterLife blockLife2 = other.gameObject.GetComponentInParent <BlockCharacterLife> ();
            if (blockLife2 != null)
            {
                blockLife2.shots += 10;
            }
        }
        else if (other.gameObject.tag == "Cover")
        {
            Destroy(this.gameObject);
            Instantiate(explosion, transform.position, transform.rotation);
        }
        else
        {
            Destroy(this.gameObject);
        }
        Destroy(this.gameObject);
    }
コード例 #11
0
    void FixedUpdate()
    {
        if (shooting)
        {
            shooting = false;

            for (int i = 0; i < shotFragments; i++)
            {
                RaycastHit hit;

                Vector3 fireDirection = bulletSpawn.forward;

                Quaternion fireRotation = Quaternion.LookRotation(fireDirection);

                Quaternion randomRotation = Random.rotation;

                //float currentSpread = Mathf.Lerp (0.0f, maxBulletSpreadAngle, fireTime / timeToSpread);

                fireRotation = Quaternion.RotateTowards(fireRotation, randomRotation, Random.Range(0.0f, spreadAngle));


                if (Physics.Raycast(bulletSpawn.position, fireRotation * Vector3.forward, out hit, distance, myLayerMask))
                {
                    if (hit.transform.tag == "Cover")
                    {
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                    }

                    if (hit.transform.tag == "Environment")
                    {
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                    }

                    if (hit.transform.tag == "Target Practice")
                    {
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                        CauseDamage        causeD  = hit.transform.GetComponent <CauseDamage>();
                        CauseDamageDestroy causeDD = hit.transform.GetComponentInParent <CauseDamageDestroy>();

                        if (causeD.addPoints >= 125 && causeD.addPoints <= 400)
                        {
                            HUDScoreText.currentScore += 125;
                        }
                        if (causeD.addPoints >= 401 && causeD.addPoints <= 1001)
                        {
                            HUDScoreText.currentScore += 1000;
                        }
                        else if (causeD.addPoints >= 100 && causeD.addPoints <= 124)
                        {
                            HUDScoreText.currentScore += 100;
                        }
                        else if (causeD.addPoints >= 26 && causeD.addPoints <= 99)
                        {
                            HUDScoreText.currentScore += 50;
                        }
                        else if (causeD.addPoints >= 6 && causeD.addPoints <= 25)
                        {
                            HUDScoreText.currentScore += 25;
                        }
                        else if (causeD.addPoints >= 2 && causeD.addPoints <= 5)
                        {
                            HUDScoreText.currentScore += 5;
                        }
                        else if (causeD.addPoints >= 1 && causeD.addPoints <= 2)
                        {
                            HUDScoreText.currentScore += 1;
                        }
                        causeDD.shots++;
                    }

                    else if (hit.collider.tag == "TutorialDoors")
                    {
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                        CauseDamageDestroy causeDD = hit.transform.GetComponentInParent <CauseDamageDestroy>();
                        if (causeDD != null)
                        {
                            causeDD.shots += 2;
                        }
                    }

                    else if (hit.collider.tag == "Head")
                    {
                        GameMasterObject.totalShotGunHits++;
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                        BlockCharacterLife blockCharLife = hit.transform.GetComponentInParent <BlockCharacterLife>();
                        if (blockCharLife != null)
                        {
                            blockCharLife.shots += 10;
                            if (!blockCharLife.reallyGotShot)
                            {
                                blockCharLife.reallyGotShot = true;
                            }
                        }


                        EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                        if (enemyHealth != null)
                        {
                            enemyHealth.TakeDamage(headDamage * attackBooster, hit.transform.position);
                            //hit.transform.GetComponentInParent<Rigidbody> ().AddForceAtPosition (hit.collider.transform.position - hit.point * pushForce, hit.point, ForceMode.Force);
                        }
                        //hit.collider.attachedRigidbody.AddForceAtPosition (hit.collider.transform.position - hit.point * pushForce, hit.point, ForceMode.Force);
                    }
                    else if (hit.collider.tag == "Weapon")
                    {
                        GameMasterObject.totalShotGunHits++;
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                        RocketDamage rocketDamage = hit.collider.GetComponent <RocketDamage> ();
                        if (rocketDamage != null)
                        {
                            rocketDamage.TakeDamage(11 * attackBooster);
                        }
                    }

                    else if (hit.collider.tag == "Poppy")
                    {
                        GameMasterObject.totalShotGunHits++;
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                        PoppyLife poppyLife = hit.collider.GetComponent <PoppyLife> ();
                        if (poppyLife != null)
                        {
                            poppyLife.TakeDamage(3);
                        }
                    }

                    else if (hit.collider.tag == "Bobby")
                    {
                        GameMasterObject.totalShotGunHits++;
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                        PoppyLife poppyLife = hit.collider.GetComponent <PoppyLife> ();
                        if (poppyLife != null)
                        {
                            poppyLife.TakeDamage(255);
                        }
                        PoppyLife poppyLife2 = hit.collider.GetComponentInParent <PoppyLife> ();
                        if (poppyLife2 != null)
                        {
                            poppyLife2.TakeDamage(255);
                        }
                    }
                    else if (hit.collider.tag == "Mask")
                    {
                        GameMasterObject.totalHitShots++;
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                        TalkingHeadLife headLift = hit.collider.GetComponent <TalkingHeadLife> ();
                        if (headLift != null)
                        {
                            headLift.TakeDamage(75);
                        }
                    }
                    else if (hit.collider.tag == "Body")
                    {
                        GameMasterObject.totalShotGunHits++;
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                        BlockCharacterLife blockCharLife = hit.collider.transform.GetComponentInParent <BlockCharacterLife>();
                        if (blockCharLife != null)
                        {
                            blockCharLife.shots += 6;
                            if (!blockCharLife.reallyGotShot)
                            {
                                blockCharLife.reallyGotShot = true;
                            }
                        }

                        EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                        if (enemyHealth != null)
                        {
                            enemyHealth.TakeDamage(bodyDamage * attackBooster, hit.transform.position);
                            //hit.transform.GetComponentInParent<Rigidbody>().AddForceAtPosition (hit.collider.transform.position - hit.point * pushForce, hit.point, ForceMode.Force);
                        }
                        //hit.collider.attachedRigidbody.AddForceAtPosition (hit.collider.transform.position - hit.point * pushForce, hit.point, ForceMode.Force);
                    }
                    else if (hit.collider.tag == "Legs")
                    {
                        GameMasterObject.totalShotGunHits++;
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                        BlockCharacterLife blockCharLife = hit.transform.GetComponentInParent <BlockCharacterLife>();
                        if (blockCharLife != null)
                        {
                            blockCharLife.shots += 3;
                        }

                        EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                        if (enemyHealth != null)
                        {
                            enemyHealth.TakeDamage(legDamage * attackBooster, hit.transform.position);
                            //hit.transform.GetComponentInParent<Rigidbody>().AddForceAtPosition (hit.collider.transform.position - hit.point * pushForce, hit.point, ForceMode.Force);
                        }
                        //hit.collider.attachedRigidbody.AddForceAtPosition (hit.collider.transform.position - hit.point * pushForce, hit.point, ForceMode.Force);
                    }
                    else if (hit.collider.tag == "Arms")
                    {
                        GameMasterObject.totalShotGunHits++;
                        impacts[currentImpact].transform.position = hit.point;
                        impacts[currentImpact].GetComponent <ParticleSystem>().Play();

                        if (++currentImpact >= maxImpacts)
                        {
                            currentImpact = 0;
                        }
                        BlockCharacterLife blockCharLife = hit.transform.GetComponentInParent <BlockCharacterLife>();
                        if (blockCharLife != null)
                        {
                            blockCharLife.shots += 2;
                            if (!blockCharLife.reallyGotShot)
                            {
                                blockCharLife.reallyGotShot = true;
                            }
                        }

                        EnemyHealth1 enemyHealth = hit.collider.GetComponentInParent <EnemyHealth1> ();
                        if (enemyHealth != null)
                        {
                            enemyHealth.TakeDamage(armDamage * attackBooster, hit.transform.position);
                            //hit.transform.GetComponentInParent<Rigidbody>().AddForceAtPosition (hit.collider.transform.position - hit.point * pushForce, hit.point, ForceMode.Force);
                        }
                        //hit.collider.attachedRigidbody.AddForceAtPosition (hit.collider.transform.position - hit.point * pushForce, hit.point, ForceMode.Force);
                    }
                }
            }
        }
    }
コード例 #12
0
 void Awake()
 {
     causeDD = GetComponent <CauseDamageDestroy> ();
     myCol   = GetComponent <BoxCollider> ();
     sounds  = GetComponent <AudioSource> ();
 }
コード例 #13
0
 // Use this for initialization
 void Start()
 {
     gamemaster = GameObject.Find(gammaO);
     gmobj      = gamemaster.GetComponent <GameMasterObject> ();
     causeDD    = GetComponent <CauseDamageDestroy> ();
 }
コード例 #14
0
 void Awake()
 {
     start = HitTheTarget.GetComponent <CauseDamageDestroy> ();
 }