using Assets.Scripts; using Assets.Scripts.Slimes; using Newtonsoft.Json.Linq; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Assets.Scripts { public class Enemy : MonoBehaviour { string enemyname; System.Random rand = new System.Random(); BasicSlime slime; SlimeFactory factory = new SlimeFactory(); // Start is called before the first frame update void Start() { enemyname = gameObject.name; if (enemyname.Contains("(")) { enemyname = enemyname.Split('(')[0]; } renameEnemy(); } // Update is called once per frame void Update() { } private void renameEnemy() { switch (enemyname) { case "SlimeMageIdle": enemyname = "Slime (Mage)"; break; case "SlimeBaseIdle": enemyname = "Slime"; break; case "SlimeMetalIdle": enemyname = "Slime (Metal)"; break; case "SlimeMiniBossIdle": enemyname = "Slime (MiniBoss)"; break; case "SlimeWarriorIdle": enemyname = "Slime (Warrior)"; break; case "SlimeForestIdle": enemyname = "Slime (Forest)"; break; case "SlimeBossIdle": enemyname = "Slime (Boss)"; break; } } public void scaleEnemy(Player player) { if (slime == null) { switch (enemyname) { case "Slime (Mage)": slime = factory.generateMageSlime(player); break; case "Slime": slime = factory.generateNormalSlime(player); break; case "Slime (Metal)": slime = factory.generateMetalSlime(player); break; case "Slime (MiniBoss)": slime = factory.generateMiniBossSlime(player); break; case "Slime (Warrior)": slime = factory.generateWarriorSlime(player); break; case "Slime (Forest)": slime = factory.generateForestSlime(player); break; case "Slime (Boss)": slime = factory.generateBossSlime(player); break; } } } public int[] getStats() { return slime.getStats(); } public string getEnemyName() { return enemyname; } public int calculateDamage() { return slime.calculateDamage(rand); } public int calculateHeavy() { return slime.calculateHeavy(rand); } public bool takeDamage(int amount) { return slime.takeDamage(amount,rand); } public int getExperience() { return slime.getExperience(); } public Item getItem() { return slime.getItem(); } public string saveEnemy() { string result = ""; result = result + FileHandler.generateJSON("enemyname", "\"" + enemyname + "\""); if (slime != null) { result = result + ",\r\n" + slime.saveSlime(); } return result; } public void loadEnemy(JToken json) { slime = new BasicSlime(json); } } }