Esempio n. 1
0
 private void OnTriggerExit(Collider other)
 {
     if (other.gameObject.tag == "Enemy" && other.GetType() == typeof(CapsuleCollider))
     {
         eController = (EnemyAIController)other.gameObject.GetComponent(typeof(EnemyAIController));
         eController.editFloorValue(-1);
     }
     else if (other.gameObject.tag == "Player" && other.gameObject.tag != "Ragdoll")
     {
         pController.editFloorValue(-1);
         foreach (MeshRenderer mesh in renderers)
         {
             mesh.enabled = true;
         }
     }
     else if (other.gameObject.name == "ChestP")
     {
         GameObject pRagdoll = GameObject.FindWithTag("PlayerRagdoll");
         prController = (PlayerRagdollHandler)pRagdoll.gameObject.GetComponent(typeof(PlayerRagdollHandler));
         prController.editFloorValue(-1);
         foreach (MeshRenderer mesh in renderers)
         {
             mesh.enabled = false;
         }
     }
     else if (other.gameObject.name == "PelvisE")
     {
         GameObject parent1 = other.transform.parent.gameObject;
         GameObject parent2 = parent1.transform.parent.gameObject;
         erController = (RagdollHandler)parent2.gameObject.GetComponent(typeof(RagdollHandler));
         erController.editFloorValue(-1);
     }
 }
    // Update is called once per frame
    void Update()
    {
        if (health <= 0 && alive)
        {
            GameObject eSys  = GameObject.Find("EventSystem");
            WinHandler wHand = (WinHandler)eSys.GetComponent(typeof(WinHandler));
            wHand.enemyKilled();
            alive = false;
            floorHandler.removeEnemy(gameObject);

            GameObject     tempRD   = Instantiate(ragdoll, transform.position, transform.rotation);
            RagdollHandler rHandler = (RagdollHandler)tempRD.GetComponent(typeof(RagdollHandler));
            rHandler.pushRagdoll(pushValue);
            Destroy(gameObject);
        }
        else if (health > 0)
        {
            if (GameObject.Find("Player_fab") != null)
            {
                sightHandler.transform.LookAt(player.transform);
            }

            Vector3    rayOrigin = sightHandler.transform.position;
            RaycastHit hit;
            if (Physics.Raycast(rayOrigin, sightHandler.transform.forward, out hit, 1000) && hit.transform.gameObject.name == "Player_fab")
            {
                //gameObject.transform.LookAt(player.transform);
                var q = Quaternion.LookRotation(player.transform.position - transform.position);
                transform.rotation = Quaternion.RotateTowards(transform.rotation, q, 750 * Time.deltaTime);
                shooting           = true;
                StartCoroutine("WaitBeforeShooting");
            }
            else if (moveCycleStart)
            {
                shooting = false;
                waited   = false;
                StartCoroutine("MoveCycle1");
                RB.velocity = transform.forward * moveVelocity;
            }
            else
            {
                shooting    = false;
                waited      = false;
                RB.velocity = transform.forward * moveVelocity;
            }
        }
    }
Esempio n. 3
0
    // TODO: fix hardcoding of bar width
    void Start()
    {
        armor         = 0;
        expectedArmor = 0;

        if (player)
        {
            health         = maxHealth;
            expectedHealth = health;
            vec2Second     = 48;
            GameObject[] theSpawns = GameObject.FindGameObjectsWithTag("Spawn");
            healthBar.rectTransform.sizeDelta = new Vector2(health, vec2Second);
            armorBar.rectTransform.sizeDelta  = new Vector2(armor, vec2Second);
            //theSpawn = theSpawns[Random.Range (0, theSpawns.Length)].GetComponent<AISpawn>();
        }
        else
        {
            health         = 150;
            maxHealth      = 150;
            expectedHealth = health;
            vec2Second     = 100;
        }

        theRagdoll = gameObject.GetComponent <RagdollHandler> ();

        if (aiWeaponHandler)
        {
            if (aiWeaponHandler.theWeapon.theType == ProjectileWeapon.WeaponType.HANDGUN)
            {
                itemDrops [0].chance = 0.5;
                itemDrops [1].chance = 0;
            }
            if (aiWeaponHandler.theWeapon.theType == ProjectileWeapon.WeaponType.RIFLE)
            {
                itemDrops [0].chance = 0;
                itemDrops [1].chance = 0.5;
            }
        }
    }
Esempio n. 4
0
    void Update()
    {
        int pFloorValue = 0;

        //finds proper player gameobject
        if (GameObject.FindWithTag("Player") != null)
        {
            GameObject       player      = GameObject.FindWithTag("Player");
            PlayerController pController = (PlayerController)player.GetComponent(typeof(PlayerController));
            pFloorValue = pController.floorValue;
        }
        else if (GameObject.FindWithTag("PlayerRagdoll") != null)
        {
            GameObject           player      = GameObject.FindWithTag("PlayerRagdoll");
            PlayerRagdollHandler pController = (PlayerRagdollHandler)player.GetComponent(typeof(PlayerRagdollHandler));
            pFloorValue = pController.floorValue;
            //Debug.Log("Player ragdoll floorValue: " + pFloorValue);
        }


        //hides enemies based on floor values
        foreach (GameObject enemy in enemyList)
        {
            if (enemy != null)
            {
                int eFloorValue = 0;
                //finds proper enemy controller script
                if (enemy.tag == "Enemy")
                {
                    EnemyAIController controller = (EnemyAIController)enemy.GetComponent(typeof(EnemyAIController));
                    if (controller != null)
                    {
                        eFloorValue = controller.floorValue;
                    }
                }
                else if (enemy.tag == "EnemyRagdoll")
                {
                    RagdollHandler controller = (RagdollHandler)enemy.GetComponent(typeof(RagdollHandler));
                    if (controller != null)
                    {
                        eFloorValue = controller.floorValue;
                    }
                }
                //hides enemies based on floor values
                if (eFloorValue > 0 && eFloorValue < pFloorValue)
                {
                    foreach (Transform child in enemy.transform)
                    {
                        if (child.gameObject.name == "Body")
                        {
                            child.gameObject.GetComponent <SkinnedMeshRenderer> ().enabled = false;
                        }
                        if (child.gameObject.name == "Gun")
                        {
                            child.gameObject.GetComponent <MeshRenderer> ().enabled = false;
                        }
                        if (child.gameObject.name == "Cube")
                        {
                            child.gameObject.GetComponent <SkinnedMeshRenderer>().enabled = false;
                        }
                    }
                }
                else
                {
                    foreach (Transform child in enemy.transform)
                    {
                        if (child.gameObject.name == "Body")
                        {
                            child.gameObject.GetComponent <SkinnedMeshRenderer> ().enabled = true;
                        }
                        if (child.gameObject.name == "Gun")
                        {
                            child.gameObject.GetComponent <MeshRenderer> ().enabled = true;
                        }
                        if (child.gameObject.name == "Cube")
                        {
                            child.gameObject.GetComponent <SkinnedMeshRenderer>().enabled = true;
                        }
                    }
                }
            }
        }
    }