void Start() { gameController = GameObject.Find("GameController"); gameControllerObject = gameController.GetComponent <GameControllerScript>(); playerObject = GameObject.Find("Player"); if (SceneManager.GetActiveScene().name == "PrincessChamber") { demonKing = GameObject.Find("DemonKing"); demonKingObjectScript = demonKing.GetComponent <DemonKingScript>(); } spriteObject = GetComponent <SpriteRenderer>(); rigidBody2D = GetComponent <Rigidbody2D>(); textObject = GameObject.Find("Canvas").transform.GetChild(1).gameObject; textObjectScript = textObject.GetComponent <TextScript>(); //initialize for the first movement previosPosition = rigidBody2D.position; }
//Make protagonist appear at the right places when transitioning to new scenes void OnSceneLoaded(Scene scene, LoadSceneMode mode) { vCam = GameObject.Find("CM vcam1"); vCamObject = vCam.GetComponent <CinemachineVirtualCamera>(); vCamObject.m_Follow = playerObject.transform; currentSceneVar = sceneTransitionVariables[scene.name]; playerObject.transform.localScale = currentSceneVar.Scale; playerObject.speed = currentSceneVar.Speed; playerObject.lookDirection = currentSceneVar.Direction; playerRigidBody2D.position = currentSceneVar.Position; playerObject.inTransition = false; playerObject.lockedMovement = false; canvas.transform.GetChild(5).GetComponent <FadingScript>().continueMusic = false; switch (scene.name) { case "PrincessChamber": textObjectScript.virtualActivationFuntion("Chamber", playerRigidBody2D.position); //playerObject.textState = true; DemonKing = GameObject.Find("DemonKing"); DemonKingObject = DemonKing.GetComponent <DemonKingScript>(); DemonKingObject.sceneLoaded = "PrincessChamber"; break; case "DiningRoom": playerObject.lockedMovement = true; StartCoroutine(displayDialogueWithDelay(5f, "DiningTable")); break; case "FarmHut": //Debug.Log("Running FarmHut case"); //Debug.Log(canvas.transform.GetChild(1).transform.GetChild(0).GetComponent<TextMeshProUGUI>().text); currentSceneVar.Direction = new Vector2(0, -1); currentSceneVar.Position = new Vector2(-3.7f, 0.6f); playerAnimator.runtimeAnimatorController = Resources.Load("Art/Animation/Controller/Protagonist") as RuntimeAnimatorController; playerSpriteRenderer.sprite = Resources.Load("Art/Animation/Sprites/ProtagSpriteSheet1stTo3rd") as Sprite; playerBoxCollider.offset = new Vector2(0.015f, 0.27f); playerBoxCollider.size = new Vector2(0.53f, 0.4f); //Change letter name when boar food is done when entering the farm hut second time if (playerObject.hasFedPig) { GameObject.Find("CabinetWithLetter").name = "CabinetWithLetter2"; } //Change letter name after day two if (currentText == "I’ll leave first thing tomorrow. ") { GameObject.Find("CabinetWithLetter2").name = "CabinetWithLetterDone"; } //If it is not day two, change music if (currentText != "I’ll leave first thing tomorrow. ") { backgroundMusic.GetComponent <AudioSource>().clip = Resources.Load("Audio/Overworld_town_music") as AudioClip; backgroundMusic.GetComponent <AudioSource>().Play(); } break; case "Farm": sceneTransitionVariables["FarmHut"].Direction = new Vector2(0, 1); sceneTransitionVariables["FarmHut"].Position = new Vector2(4.3f, -4.8f); playerAnimator.runtimeAnimatorController = Resources.Load("Art/Animation/Controller/Protagonist") as RuntimeAnimatorController; playerSpriteRenderer.sprite = Resources.Load("Art/Animation/Sprites/ProtagSpriteSheet1stTo3rd") as Sprite; playerBoxCollider.offset = new Vector2(0.015f, 0.27f); playerBoxCollider.size = new Vector2(0.53f, 0.4f); FatSeller = GameObject.Find("FatMerchant"); FatSeller.SetActive(false); //Change market and carriage name when day two if (currentText == "I’ll leave first thing tomorrow. ") { Debug.Log("MarketChanged"); GameObject.Find("MarketStandRed").name = "MarketStandRed2"; GameObject.Find("CarriageNotNextDayYet").name = "Carriage"; GameObject.Find("MarketMerchant").SetActive(false); FatSeller.SetActive(true); } break; case "Forest": backgroundMusic.GetComponent <AudioSource>().clip = Resources.Load("Audio/The_forest") as AudioClip; backgroundMusic.GetComponent <AudioSource>().Play(); playerAnimator.runtimeAnimatorController = Resources.Load("Art/Animation/Controller/Protagonist") as RuntimeAnimatorController; playerSpriteRenderer.sprite = Resources.Load("Art/Animation/Sprites/ProtagSpriteSheet1stTo3rd") as Sprite; playerBoxCollider.offset = new Vector2(0.015f, 0.27f); playerBoxCollider.size = new Vector2(0.53f, 0.4f); DemonKing = GameObject.Find("DemonKing"); DemonKingObject = DemonKing.GetComponent <DemonKingScript>(); DemonKingObject.playerObject = player; DemonKingObject.textObject = canvas.transform.GetChild(1).gameObject; DemonKingObject.sceneLoaded = "Forest"; break; case "PushingStonePuzzle": backgroundMusic.GetComponent <AudioSource>().clip = Resources.Load("Audio/Cave_Music") as AudioClip; backgroundMusic.GetComponent <AudioSource>().Play(); playerObject.LightObject.SetActive(true); break; case "StoneMaze": playerObject.LightObject.SetActive(true); playerAnimator.runtimeAnimatorController = Resources.Load("Art/Animation/Controller/Protagonist") as RuntimeAnimatorController; playerSpriteRenderer.sprite = Resources.Load("Art/Animation/Sprites/ProtagSpriteSheet1stTo3rd") as Sprite; playerBoxCollider.offset = new Vector2(0.015f, 0.27f); playerBoxCollider.size = new Vector2(0.53f, 0.4f); break; case "Dilemma": backgroundMusic.GetComponent <AudioSource>().clip = Resources.Load("Audio/Game_Show") as AudioClip; backgroundMusic.GetComponent <AudioSource>().Play(); playerObject.LightObject.SetActive(false); playerAnimator.runtimeAnimatorController = Resources.Load("Art/Animation/Controller/Protagonist") as RuntimeAnimatorController; playerSpriteRenderer.sprite = Resources.Load("Art/Animation/Sprites/ProtagSpriteSheet1stTo3rd") as Sprite; playerBoxCollider.offset = new Vector2(0.015f, 0.27f); playerBoxCollider.size = new Vector2(0.53f, 0.4f); //var transformParticles = GameObject.Find("TransformParticles").GetComponent<ParticleSystem>(); //transformParticles.Play(); StartCoroutine(displayDialogueWithDelay(2.5f, "QuizDemon")); break; case "CropsPuzzleHouse": backgroundMusic.GetComponent <AudioSource>().clip = Resources.Load("Audio/Crops_Puzzle_Music_2") as AudioClip; backgroundMusic.GetComponent <AudioSource>().Play(); currentSceneVar.Direction = new Vector2(0, -1); currentSceneVar.Position = new Vector2(3.7f, 0.6f); if (playerObject.inventoryAmount.ContainsKey("FullKey")) { playerObject.changeTagOnDialogue("CropsPuzzleHouse", "CabinetWithKey"); } playerObject.LightObject.SetActive(false); canvas.transform.GetChild(0).gameObject.SetActive(true); playerAnimator.runtimeAnimatorController = Resources.Load("Art/Animation/Controller/Protagonist") as RuntimeAnimatorController; playerSpriteRenderer.sprite = Resources.Load("Art/Animation/Sprites/ProtagSpriteSheet1stTo3rd") as Sprite; playerBoxCollider.offset = new Vector2(0.015f, 0.27f); playerBoxCollider.size = new Vector2(0.53f, 0.4f); break; case "KeyPuzzle": sceneTransitionVariables["CropsPuzzleHouse"].Direction = new Vector2(0, 1); sceneTransitionVariables["CropsPuzzleHouse"].Position = new Vector2(1.07f, 1.47f); canvas.transform.GetChild(0).gameObject.SetActive(false); break; case "CropsPuzzle": sceneTransitionVariables["CropsPuzzleHouse"].Direction = new Vector2(0, 1); sceneTransitionVariables["CropsPuzzleHouse"].Position = new Vector2(-4.3f, -4.8f); playerObject.LightObject.SetActive(false); playerAnimator.runtimeAnimatorController = Resources.Load("Art/Animation/Controller/Protagonist") as RuntimeAnimatorController; playerSpriteRenderer.sprite = Resources.Load("Art/Animation/Sprites/ProtagSpriteSheet1stTo3rd") as Sprite; playerBoxCollider.offset = new Vector2(0.015f, 0.27f); playerBoxCollider.size = new Vector2(0.53f, 0.4f); backgroundMusic.GetComponent <AudioSource>().clip = Resources.Load("Audio/Crops_Puzzle_Music_2") as AudioClip; backgroundMusic.GetComponent <AudioSource>().Play(); break; case "Beach": backgroundMusic.GetComponent <AudioSource>().clip = Resources.Load("Audio/PrincessDemonKing") as AudioClip; backgroundMusic.GetComponent <AudioSource>().Play(); GameObject.Find("InventoryBar").SetActive(false); playerObject.LightObject.SetActive(false); canvas.transform.GetChild(5).GetComponent <FadingScript>().continueMusic = true; playerAnimator.runtimeAnimatorController = Resources.Load("Art/Animation/Controller/Protagonist") as RuntimeAnimatorController; playerSpriteRenderer.sprite = Resources.Load("Art/Animation/Sprites/ProtagSpriteSheet1stTo3rd") as Sprite; playerBoxCollider.offset = new Vector2(0.015f, 0.27f); playerBoxCollider.size = new Vector2(0.53f, 0.4f); StartCoroutine(displayDialogueWithDelay(2.5f, "1DemonKingBeach")); break; case "DiningRoomFinale": if (currentText.Contains("Wait here until I return.")) { StartCoroutine(displayDialogueWithDelay(2.5f, "EndingOne")); playerObject.lockedMovement = true; } else { StartCoroutine(displayDialogueWithDelay(2.5f, "EndingTwo")); playerObject.lockedMovement = true; } playerSpriteRenderer.sortingLayerName = "Default"; break; case "Sunset": backgroundMusic.GetComponent <AudioSource>().clip = Resources.Load("Audio/Epilogue") as AudioClip; backgroundMusic.GetComponent <AudioSource>().Play(); canvas.transform.GetChild(5).GetComponent <FadingScript>().continueMusic = true; playerObject.lockedMovement = true; StartCoroutine(transitionToScene(8, "Ending")); break; case "Ending": playerObject.lockedMovement = true; break; case "EndingTwo": backgroundMusic.GetComponent <AudioSource>().clip = Resources.Load("Audio/Epilogue") as AudioClip; backgroundMusic.GetComponent <AudioSource>().Play(); playerObject.lockedMovement = true; break; } }