// Update is called once per frame void Update() { if (!inFinisherMode) { if (FinisherModeCooldownCount >= FinisherModeCooldownTime && CanFinish) { if (PillarFinisherNearby && PillarTarget != null)//TutorialPillarComment { FinisherIcon.SetActivated(true); FinisherIcon.transform.position = PillarTarget.transform.position; FinisherIcon.transform.position += Vector3.up * 2f; if (TryFinisher && !GameStatus.GamePaused) { PillarFinisherUsed = true; currentTarget = PillarTarget; PillarTutorial = PillarTarget.GetComponent <TutorialPillar>(); switch (PillarTutorial.FinisherUnlock) { case Finishers.Siphoning: GetComponent <Siphoncut>().enabled = true; break; case Finishers.FlameSword: GetComponent <RunicFireSword>().enabled = true; break; case Finishers.Flamethrower: GetComponent <RunicFlamethrower>().enabled = true; break; case Finishers.FlameAOE: GetComponent <RunicFireCircle>().enabled = true; break; case Finishers.FrostAOE: GetComponent <RunicFrostCircle>().enabled = true; break; } StartCoroutine(EnterFinisherMode(false)); } } else if (finisherSlider.value >= 100) { currentTarget = GetClosestEnemy(); FinisherFullImage.SetActive(true); if (TryFinisher && !GameStatus.GamePaused) //Input.GetButtonDown("FinishMode") { if (currentTarget != null) { finisherSlider.value = 25; FinisherFullImage.SetActive(false); StartCoroutine(EnterFinisherMode(usedSwordGrapple)); } else { print("No nearby enemy"); } } } else { FinisherFullImage.SetActive(false); } } else { FinisherModeCooldownCount += Time.deltaTime; FinisherIcon.SetActivated(false); } //Increase UI slider for Finisher && temp cheat if (Input.GetKeyDown(KeyCode.G)) { IncreaseFinisherMeter(100); } if (Input.GetKeyDown(KeyCode.H)) { IncreaseGodModeMeter(100); } } else { CameraBase.rotation = PlayerRotWrapper.rotation; if (PerformingFinisher && !ExecutingFinisher && !GameStatus.GamePaused) //MARK: Unsure of how we will do the full finisher carves { if (!PillarFinisherUsed) { currentTarget.transform.position = EnemyFinisherPlacement.position; currentTarget.transform.rotation = EnemyFinisherPlacement.rotation; if (!PillarFinisherUsed) { currentTarget.transform.Rotate(new Vector3(0, -40, 0)); } } if (Input.GetButtonDown("QuickFinish")) { FailFinisherMode(); return; } ProcessPlayerInput(); bool goodSoFar = false; foreach (FinisherAbstract RCombo in FinisherMoves) { goodSoFar = RCombo.checkSoFar(RunicQue); if (goodSoFar) { if (RCombo.check(RunicQue)) { PrimaryAttackPopUp.SetActive(true); if (PillarFinisherUsed) { if (PillarTutorial) { PillarTutorial.PlayFinalHit(); } } } break; } } if (!goodSoFar) { FailFinisherMode(); return; } //inside the primary attack check, see if they did a correct sequence, and succeed or fail if (Input.GetButtonDown("Execute")) { bool goodCombo = false; FinisherAbstract FinisherToPerform = null; foreach (FinisherAbstract f in FinisherMoves) { //goodCombo = f.startfinisher(this, RunicQue); goodCombo = f.check(RunicQue); FinisherToPerform = f; if (goodCombo) { break; } } if (!goodCombo) { FailFinisherMode(); } else { StartCoroutine(ExecuteFinisher(FinisherToPerform)); } } if (FinisherCount <= 0 && !ExecutingFinisher && !PillarFinisherUsed) { FailFinisherMode(); } else { FinisherCount -= Time.unscaledDeltaTime; } } } //print(NearbyEnemies); TryFinisher = false; }
public void LoadGame() { if (!LoadGameBool) { LoadGameBool = true; int index = SceneManager.GetActiveScene().buildIndex;//reload scene SceneManager.LoadScene(index); return; } // 1 if (File.Exists(Application.persistentDataPath + "/gamesave.save")) { // 2 BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(Application.persistentDataPath + "/gamesave.save", FileMode.Open); Save save = (Save)bf.Deserialize(file); file.Close(); // 3 foreach (int index in save.DeadGroups) { Groups[index].SetActive(false); } List <FinisherAbstract> FinishersUnlocked = new List <FinisherAbstract>(); foreach (int index in save.FinishedPillars) { TutorialPillar pillarTutorial = Pillars[index].GetComponent <TutorialPillar>(); switch (pillarTutorial.FinisherUnlock) { case Finishers.Siphoning: fm.GetComponent <Siphoncut>().enabled = true; break; case Finishers.FlameSword: fm.GetComponent <RunicFireSword>().enabled = true; break; case Finishers.Flamethrower: fm.GetComponent <RunicFlamethrower>().enabled = true; break; case Finishers.FlameAOE: fm.GetComponent <RunicFireCircle>().enabled = true; break; case Finishers.FrostAOE: fm.GetComponent <RunicFrostCircle>().enabled = true; break; } Pillars[index].SetActive(false); } // 4 HealthSlider.value = save.healthMeter; FinisherSlider.value = save.finisherMeter; GroupsDefeated = save.DeadGroups.Count; playerT.position = new Vector3(save.playerX, save.playerY + .5f, save.playerZ); playerT.GetComponent <Rigidbody>().velocity = Vector3.zero; Debug.Log("Game Loaded"); GetComponent <UIManager>().ResumeGame(); } else { Debug.Log("No game saved!"); } LoadGameBool = false; }