//When taking damage public void onTakeDamage(float damage, float knockback) { health -= damage; transform.Translate(new Vector2(-knockback, 0)); if (health > 0) { audioSource.PlayOneShot(takeDamageSFX); } //If health = 0, die if (health <= 0) { if (isBoss) { animator.SetBool("death", true); rb.velocity = new Vector2(0, 0); Invoke("winCall", 7.5f); } MusicManager.instance.audioSource.pitch = Random.Range(0.75f, 1.1f); MusicManager.instance.audioSource.PlayOneShot(dieSFX); GameObject roomControl = transform.parent.transform.gameObject; DoorCheck dc = roomControl.GetComponent <DoorCheck>(); Destroy(gameObject); dc.enemyCount--; dc.enemyKilled(); } }
//Trigger Variables void Start() { doorStart = transform.position; doorCheck = doorClosingBox.GetComponent <DoorCheck>(); applyForce = new Vector3(moveDoorTo.x - doorStart.x, moveDoorTo.y - doorStart.y, moveDoorTo.z - doorStart.z); AdjustForce(); }
void Update() { if (waitTime <= 0 && !spawnedBoss) { int bossNum = rooms.Count - 1; Instantiate(boss, rooms[bossNum].transform.position, Quaternion.identity); bossRoom = rooms[bossNum]; Instantiate(spawn, rooms[0].transform.position, Quaternion.identity); Debug.Log("Boss Spawned!"); spawnedBoss = !spawnedBoss; DoorCheck dc = rooms[bossNum].transform.Find("DoorCheck").gameObject.GetComponent <DoorCheck>(); dc.bossRoom = true; } else { waitTime -= Time.deltaTime; } }
//Check if surrounding rooms have doors to here public void checkDoors() { if (topDoor) { Collider2D roomCollider = Physics2D.OverlapCircle(new Vector2(transform.position.x, transform.position.y + 20), 0.25f); if (roomCollider == null) { topDoorType = 0; } else { GameObject room = roomCollider.gameObject; topRoom = room.transform.parent.transform.gameObject; DoorCheck otherDoor = room.GetComponent <DoorCheck>(); if (otherDoor != null && otherDoor.bottomDoor) { topDoorType = 1; } else { topDoorType = 2; } } } if (rightDoor) { Collider2D roomCollider = Physics2D.OverlapCircle(new Vector2(transform.position.x + 20, transform.position.y), 0.25f); if (roomCollider == null) { rightDoorType = 0; } else { GameObject room = roomCollider.gameObject; rightRoom = room.transform.parent.transform.gameObject; DoorCheck otherDoor = room.GetComponent <DoorCheck>(); if (otherDoor != null && otherDoor.leftDoor) { rightDoorType = 1; } else { rightDoorType = 2; } } } if (bottomDoor) { Collider2D roomCollider = Physics2D.OverlapCircle(new Vector2(transform.position.x, transform.position.y - 20), 0.25f); if (roomCollider == null) { bottomDoorType = 0; } else { GameObject room = roomCollider.gameObject; bottomRoom = room.transform.parent.transform.gameObject; DoorCheck otherDoor = room.GetComponent <DoorCheck>(); if (otherDoor != null && otherDoor.topDoor) { bottomDoorType = 1; } else { bottomDoorType = 2; } } } if (leftDoor) { Collider2D roomCollider = Physics2D.OverlapCircle(new Vector2(transform.position.x - 20, transform.position.y), 0.25f); if (roomCollider == null) { leftDoorType = 0; } else { GameObject room = roomCollider.gameObject; leftRoom = room.transform.parent.transform.gameObject; DoorCheck otherDoor = room.GetComponent <DoorCheck>(); if (otherDoor != null && otherDoor.rightDoor) { leftDoorType = 1; } else { leftDoorType = 2; } } } }
// Start is called before the first frame update void Start() { currentRoom = gameObject.transform.parent.transform.gameObject.transform.parent.transform.gameObject; doorCheck = currentRoom.GetComponent <DoorCheck>(); }