void OnCollision(Collision2D collision) { if (collision.gameObject.tag == "Enemy" && !this.invincible) { addLife(-1); if (Life == 0) { // Die! FadeScreen.Animate(8, () => { ClearResources(); transform.position = Hub.instance.topDoor.transform.position - Vector3.up * 2; Life = MaxLife; WeaponData = WeaponFactory.getInstance().GetRandomWeapon(1); PowerUpManager.SetPowerUp(PowerUpFactory.GetPowerUpNull()); Room currentRoom = FindObjectsOfType <Room>().Where(r => r.ID != -1).First(); Hub.instance.topDoor.linkedRoom = (Instantiate(currentRoom.roomPrefab, Vector3.zero, Quaternion.identity) as GameObject).GetComponent <Room>(); Hub.instance.topDoor.linkedRoom.roomPrefab = currentRoom.roomPrefab; Destroy(currentRoom.gameObject); Enemy[] enemies = FindObjectsOfType <Enemy>(); for (int i = 0; i < enemies.Length; i++) { Destroy(enemies[i].gameObject); } Globals.CurrentLevel = 0; }, "Game over\n\nYou lost all your resources"); } else { // Set invincible; this.invincible = true; this.timeInvincible = 0; } } }
void OnTriggerStay2D(Collider2D collider) { GetComponent <Collider2D>().enabled = hubDoor; FadeScreen.Animate(2, ChangeRoom); }