using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; using System; public enum BossThugEnum { Pending=0, //waiting for npcs to die Talking=1, Attacking=2 } public class BossThug : MonoBehaviour { public GameObject npc1; public GameObject npc2; private GameObject player; private GameObject doorway; public BossThugEnum state = BossThugEnum.Pending; // Start is called before the first frame update void Start() { npc1 = GameObject.FindObjectsOfType(true).Where(sr => sr.gameObject.name == "ThugBob" && sr.gameObject.tag == "Enemy").ToArray()[0]; npc2 = GameObject.FindObjectsOfType(true).Where(sr => sr.gameObject.name == "ThugBen" && sr.gameObject.tag == "Enemy").ToArray()[0]; player = GameObject.FindGameObjectWithTag("Player"); doorway = GameObject.FindObjectsOfType(true).Where(sr => sr.gameObject.name == "DoorToHell" && sr.gameObject.tag == "SceneTransition").ToArray()[0]; if (npc1 == null || npc2 == null || player == null || doorway == null) { throw new Exception("Object has not been found in the scene"); } } // Update is called once per frame void Update() { if ( (npc1.GetComponent().health <= 0 && npc1.GetComponent().isKilled == 1) && (npc2.GetComponent().health <= 0 && npc2.GetComponent().isKilled == 1) && state == BossThugEnum.Pending) { state = BossThugEnum.Talking; // UZUPELNIC DIALOG } else if (state == BossThugEnum.Attacking && player.GetComponent().currentHealth <= 0) { doorway.GetComponent().ScenetToMoveTo(); } switch (state) { case BossThugEnum.Attacking: { ActivateKillingMode(); break; } case BossThugEnum.Talking: { ActivateDialogueMode(); //later add trigger events etc state = BossThugEnum.Attacking; break; } } } private void ActivateKillingMode() { gameObject.GetComponent().enabled=true; gameObject.GetComponent().baseAttack=11f; } private void ActivateDialogueMode() { gameObject.GetComponent().enabled = true; gameObject.GetComponent().radius = 1.2f; } }