public void StartDeath(string[] newDeathText = null, string newDeathMusic = null) { PlayerOverworld.audioCurrTime = 0; if (!UnitaleUtil.IsOverworld) { UIController.instance.encounter.EndWave(true); autolinebreakstate = EnemyEncounter.script.GetVar("autolinebreak").Boolean; EnemyEncounter.script.SetVar("autolinebreak", DynValue.NewBoolean(true)); transform.position = new Vector3(transform.position.x - Misc.cameraX, transform.position.y - Misc.cameraY, transform.position.z); } else { autolinebreakstate = true; } deathText = newDeathText; deathMusic = newDeathMusic; //Reset the camera's position Misc.MoveCameraTo(0, 0); playerZ = 130; if (UnitaleUtil.IsOverworld) { playerParent = transform.parent.parent; playerIndex = transform.parent.GetSiblingIndex(); // transform.parent.SetParent(null); } else { playerParent = transform.parent; playerIndex = transform.GetSiblingIndex(); transform.SetParent(null); } if (UnitaleUtil.IsOverworld) { /* transform.parent.position = new Vector3(transform.parent.position.x - GameObject.Find("Main Camera OW").transform.position.x - 320, * transform.parent.position.y - GameObject.Find("Main Camera OW").transform.position.y - 240, transform.parent.position.z); */ battleCamera = GameObject.Find("Main Camera OW"); battleCamera.SetActive(false); GetComponent <SpriteRenderer>().enabled = true; // stop showing the player } else { UIController.instance.encounter.gameOverStance = true; GetComponent <PlayerController>().invulTimer = 0; GetComponent <Image>().enabled = true; // abort the blink animation if it was playing battleCamera = GameObject.Find("Main Camera"); battleCamera.SetActive(false); battleContainer = GameObject.Find("Canvas"); battleContainer.GetComponent <Canvas>().enabled = false; } // remove all bullets if in retrocompatibility mode if (GlobalControls.retroMode) { foreach (LuaProjectile p in FindObjectsOfType <LuaProjectile>()) { BulletPool.instance.Requeue(p); } } /*battleContainer = new GameObject("BattleContainer"); * foreach (Transform go in UnitaleUtil.GetFirstChildren(null, false)) * if (go.name != battleContainer.name &&!go.GetComponent<LuaEnemyEncounter>() && go.name != Player.name &&!go.name.Contains("AudioChannel")) * go.SetParent(battleContainer.transform); * battleContainer.SetActive(false);*/ if (UnitaleUtil.IsOverworld) { gameOverContainerOw.SetActive(true); } else { gameOverContainer.SetActive(true); } ScreenResolution.BoxCameras(Screen.fullScreen); Camera.main.GetComponent <AudioSource>().clip = AudioClipRegistry.GetMusic("mus_gameover"); GameObject.Find("GameOver").GetComponent <Image>().sprite = SpriteRegistry.Get("UI/spr_gameoverbg_0"); if (UnitaleUtil.IsOverworld) { utHeart = Instantiate(GameObject.Find("utHeart")); heartColor = utHeart.GetComponent <Image>().color; heartColor.a = 1; } else { heartColor = gameObject.GetComponent <Image>().color; gameObject.transform.SetParent(GameObject.Find("Canvas GameOver").transform); } //if (overworld) // gameObject.transform.SetParent(GameObject.Find("Canvas OW").transform); //else PlayerCharacter.instance.HP = PlayerCharacter.instance.MaxHP; if (UnitaleUtil.IsOverworld) { gameObject.transform.GetComponent <SpriteRenderer>().enabled = false;// gameObject.transform.parent.SetParent(GameObject.Find("Canvas GameOver").transform); } else { gameObject.transform.SetParent(GameObject.Find("Canvas GameOver").transform); UIStats.instance.setHP(PlayerCharacter.instance.MaxHP); } brokenHeartPrefab = Resources.Load <GameObject>("Prefabs/heart_broken"); if (SpriteRegistry.GENERIC_SPRITE_PREFAB == null) { SpriteRegistry.GENERIC_SPRITE_PREFAB = Resources.Load <Image>("Prefabs/generic_sprite"); } heartShardPrefab = SpriteRegistry.GENERIC_SPRITE_PREFAB.gameObject; reviveText = GameObject.Find("ReviveText").GetComponent <TextManager>(); reviveText.SetCaller(EnemyEncounter.script); reviveFade = GameObject.Find("ReviveFade").GetComponent <Image>(); reviveFade.transform.SetAsLastSibling(); gameOverTxt = GameObject.Find("TextParent").GetComponent <TextManager>(); gameOverTxt.SetCaller(EnemyEncounter.script); gameOverImage = GameObject.Find("GameOver").GetComponent <Image>(); if (UnitaleUtil.IsOverworld) { /* * heartPos = new Vector3(GetComponent<RectTransform>().position.x - transform.parent.position.x, * GetComponent<RectTransform>().position.y + (GetComponent<RectTransform>().sizeDelta.y / 2) - transform.parent.position.y, * GetComponent<RectTransform>().position.z + 100010); */ heartPos = new Vector3((transform.parent.position.x - GameObject.Find("Canvas OW").transform.position.x) + 320, ((transform.parent.position.y + (GetComponent <RectTransform>().sizeDelta.y / 2)) - GameObject.Find("Canvas OW").transform.position.y) + 240, GetComponent <RectTransform>().position.z + 100010); } else { heartPos = gameObject.GetComponent <RectTransform>().position; } gameOverMusic = Camera.main.GetComponent <AudioSource>(); started = true; }