private void PlayerAttacking(SOEnemy enemy) { int damage = ReturnPlayerDamage(); int additionalDamage = ReturnPlayerAdditionalDamage(); if (enemy.enemyType == _playerWeapon.VsType) { healthManager.EnemyLoseHealth(enemy, additionalDamage); showDamage.ShowEnemyDamage(additionalDamage); } else { healthManager.EnemyLoseHealth(enemy, damage); if (healthManager.EnemyDied) { OnBattleEnd(); } showDamage.ShowEnemyDamage(damage); } if (_playerWeapon.ShouldStun) { StunChanceNumber(); if (_randomStunChanceNumber <= _playerWeapon.StunChance) { EnemyIsStunned = true; Debug.Log("enemy stunned"); } } }
// Update is called once per frame void Update() { print("Current battle state: " + state); if (Input.GetKeyDown(KeyCode.L)) { Lose(); } if (Input.GetKeyDown(KeyCode.W)) { Win(); } if (Input.GetKeyDown(KeyCode.N)) { NextState(); } if (state == States.START) { PlayerEnter.Enter = true; if (!SRanOnce) { timeS = Time.time; SRanOnce = true; } if (Time.time - timeS >= 2.5f && timeS != -1) { NextState(); } } if (state == States.PLAYERCHOICE) { SRanOnce = false; EMRanOnce = false; if (!PCRanOnce) { abilityChooser.GetStarted(); PCRanOnce = true; } if (!healing) { if (Input.GetKeyDown(KeyCode.DownArrow) && abilityChooser.selectedAbility < 3) { abilityChooser.SelectAbility(abilityChooser.selectedAbility + 1); } if (Input.GetKeyDown(KeyCode.UpArrow) && abilityChooser.selectedAbility > 1) { abilityChooser.SelectAbility(abilityChooser.selectedAbility - 1); } } else { if (Input.GetKeyDown(KeyCode.DownArrow) && abilityChooser.selectedHealer < 7) { abilityChooser.SelectHealer(abilityChooser.selectedHealer + 1); } if (Input.GetKeyDown(KeyCode.UpArrow) && abilityChooser.selectedHealer > 1) { abilityChooser.SelectHealer(abilityChooser.selectedHealer - 1); } } if (Input.GetKeyDown(KeyCode.Return)) { print("Ability chosen: " + abilityChooser.selectedAbility); if (abilityChooser.selectedAbility != 3) { NextState(); } else if (!healing) { abilityChooser.WhiteText(false); abilityChooser.SelectHealer(1); healing = true; } else { abilityChooser.WhiteHealText(false); NextState(); } } if ((Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.LeftArrow)) && healing) { healing = false; abilityChooser.WhiteHealText(false); abilityChooser.SelectAbility(3); } } if (state == States.PLAYERMOVE) { PCRanOnce = false; healing = false; if (!PMRanOnce) { timePM = Time.time; actionValue = abilityChooser.GetLastDoneDamage(); abilityChooser.WhiteText(true); if (actionValue >= 0) { healthManager.EnemyLoseHealth(actionValue); } else { healthManager.LoseHealth(actionValue); } PMRanOnce = true; } if (Time.time - timePM >= 1.5f && timePM != -1) { if (healthManager.GetHealth_e() >= 1) { NextState(); } else if (healthManager.GetHealth_e() <= 0) { if (e.ID == 5) { if (GameManager.instance.questManager.questLog.ContainsKey("Quest006")) { if (!GameManager.instance.questManager.questLog["Quest006"].QuestCompleted()) { GameManager.instance.questManager.CompleteObjective("Quest006DefeatNoni"); GameManager.instance.questManager.AddQuestToLog("Quest007"); } } if (GameManager.instance.questManager.questLog.ContainsKey("Quest008")) { if (!GameManager.instance.questManager.questLog["Quest008"].QuestCompleted()) { GameManager.instance.questManager.CompleteObjective("Quest008DefeatNoni"); GameManager.instance.questManager.AddQuestToLog("Quest009"); } } } if (e.ID == 6) { if (GameManager.instance.questManager.questLog.ContainsKey("Quest009")) { if (!GameManager.instance.questManager.questLog["Quest009"].QuestCompleted()) { GameManager.instance.questManager.CompleteObjective("Quest009FindDefeatMeemstar"); GameManager.instance.questManager.AddQuestToLog("Quest010"); } } } if (e.ID == 7) { if (GameManager.instance.questManager.questLog.ContainsKey("Quest013")) { if (!GameManager.instance.questManager.questLog["Quest013"].QuestCompleted()) { GameManager.instance.questManager.CompleteObjective("Quest013KillServer"); GameManager.instance.questManager.AddQuestToLog("Quest014"); } } } Win(); } } } if (state == States.ENEMYCHOICE) { PMRanOnce = false; flashTimer = Mathf.PingPong(Time.time * 2, 1); if (!ECRanOnce) { timeEC = Time.time; } else { if (flashTimer >= 0.9) { if (attNum == 1) { if (e.Type != "server") { enemyChooser.enemyStat.text = "<color=red>Attack 1: " + e.Attack1Title + "\n" + "Damage: " + (e.Attack1Damage - PersistentInventoryScript.instance.itemDefense / 5) + "</color>\n" + "Attack 2: " + e.Attack2Title + "\n" + "Damage: " + (e.Attack2Damage - PersistentInventoryScript.instance.itemDefense / 5); } else { enemyChooser.enemyStat.text = "<color=red>Attack 1: " + e.Attack1Title + "\n" + "Damage: ???</color>\n" + "Attack 2: " + e.Attack2Title + "\n" + "Damage: " + (e.Attack2Damage - PersistentInventoryScript.instance.itemDefense / 5); } } if (attNum == 2) { if (e.Type != "server") { enemyChooser.enemyStat.text = "Attack 1: " + e.Attack1Title + "\n" + "Damage: " + (e.Attack1Damage - PersistentInventoryScript.instance.itemDefense / 5) + "\n" + "<color=red>Attack 2: " + e.Attack2Title + "\n" + "Damage: " + (e.Attack2Damage - PersistentInventoryScript.instance.itemDefense / 5) + "</color>"; } else { enemyChooser.enemyStat.text = "Attack 1: " + e.Attack1Title + "\n" + "Damage: ???\n" + "<color=red>Attack 2: " + e.Attack2Title + "\n" + "Damage: " + (e.Attack2Damage - PersistentInventoryScript.instance.itemDefense / 5) + "</color>"; } } } if (flashTimer <= 0.1) { WhiteText(); } } if (Time.time - timeEC >= 1f && timeEC != -1) { showEnterKey = true; if (Input.GetKeyDown(KeyCode.Return)) { NextState(); } } } if (state == States.ENEMYMOVE) { ECRanOnce = false; showEnterKey = false; WhiteText(); if (!EMRanOnce) { int damage; if (attNum == 1) { if (e.Type != "server") { damage = e.Attack1Damage - PersistentInventoryScript.instance.itemDefense / 5; if (damage < 1) { damage = 1; } healthManager.LoseHealth(damage); } else { damage = (e.Attack1Damage + Random.Range(-10, 10)) - PersistentInventoryScript.instance.itemDefense / 5; if (damage < 1) { damage = 1; } healthManager.LoseHealth(damage); ChangeServerSprite(); } } if (attNum == 2) { damage = e.Attack2Damage - PersistentInventoryScript.instance.itemDefense / 5; if (damage < 1) { damage = 1; } healthManager.LoseHealth(damage); } EMRanOnce = true; timeEM = Time.time; } if (Time.time - timeEM >= 1.5f && timeEM != -1) { if (healthManager.GetHealth() >= 1) { NextState(); } else if (healthManager.GetHealth() <= 0) { Lose(); } } } if (showEnterKey) { if (enterKeyColor.a < 1f) { enterKeyColor.a += 0.005f; enterKey.GetComponent <Image>().color = enterKeyColor; } enterKey.transform.localScale = new Vector3(Mathf.PingPong(Time.time * 0.5f, 0.3f) + 1f, Mathf.PingPong(Time.time * 0.5f, 0.3f) + 1f, 1f); } else { if (enterKeyColor.a > 0) { enterKeyColor.a -= 0.01f; enterKey.GetComponent <Image>().color = enterKeyColor; Vector3 s = enterKey.transform.localScale; enterKey.transform.localScale = new Vector3(s.x - s.x / 100, s.y - s.y / 100, 1f); } } }