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; } } }
// 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; } } }
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; } } } } } }