using Assets.Scripts; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class Fight : MonoBehaviour { GameObject tile; GameObject enemy; GameObject player; System.Random rand = new System.Random(); UIHandler uihandler; public void startFight(GameObject tile, GameObject enemy, GameObject player) { this.tile = tile; this.enemy = enemy; this.player = player; enemy.GetComponent().scaleEnemy(player.GetComponent()); enemy.transform.rotation = Quaternion.Euler(0,GameObject.Find("Main Camera").transform.rotation.y + 180f,0); uihandler = GameObject.Find("UIHandler").GetComponent(); uihandler.openFight(); uihandler.updateFightInterface(enemy, player); EventSystem.current.SetSelectedGameObject(GameObject.Find("btnActionOne")); } private void endFight() { uihandler.closeFight(); } public void playerAction(int index) { int playerDamage = 0; int skillnumber = -1; switch (index) { case 1: endFight(); uihandler.showMessage("INFORMATION;You escaped"); break; case 2: //User waits break; case 3: playerDamage = player.GetComponent().calculateDamage(); break; case 4: skillnumber = 0; break; case 5: skillnumber = 1; break; case 6: skillnumber = 2; break; } if (skillnumber != -1) { playerDamage = player.GetComponent().castSkill(skillnumber); } player.GetComponent().reduceCooldown(skillnumber); player.GetComponent().regainSecondary(); bool isDead = enemy.GetComponent().takeDamage(playerDamage); if (isDead) { if (enemy.GetComponent().getEnemyName() == "Slime (Boss)") { SteamWorksHandler.getStandardAchievement("BossAchievement"); } endFight(); tile.GetComponent().enemyKilled(enemy); player.GetComponent().enemyKilled(); player.GetComponent().gainExperience(enemy.GetComponent().getExperience()); GameObject.Find("Inventory").GetComponent().addItem(enemy.GetComponent().getItem()); GameObject.Find("QuestLog").GetComponent().updateQuests("kill", enemy, 1); } else { if (index != 1) { enemyAction(); uihandler.updateFightInterface(enemy, player); } } } public void enemyAction() { int enemyDamage = -1; // { health, maxHealth, secondary, maxSecondary, strength, dexterity, intelligence }; int[] enemyStats = enemy.GetComponent().getStats(); int index = rand.Next(0,2); if (index == 1 && enemyStats[2] <= 0) { index = 0; } switch (index) { case 0: enemyDamage = enemy.GetComponent().calculateDamage(); break; case 1: enemyDamage = enemy.GetComponent().calculateHeavy(); break; } if (player.GetComponent().takeDamage(enemyDamage)) { SteamWorksHandler.getStandardAchievement("DeathAchievement"); uihandler.showDeathScreen(); } } }