// Update is called once per frame void Update() { //Debug.Log(currentState); switch (currentState) { case (TurnState.PROCESSING): UpdateProgressBar(); break; case (TurnState.CHOOSEACT): ChooseAction(); currentState = TurnState.WAITING; break; case (TurnState.WAITING): //idle break; case (TurnState.ACTION): StartCoroutine(TimeForAction()); break; case (TurnState.DEAD): if (!isAlive) { } else { //change tag of enemy this.gameObject.tag = "Dead Enemy"; //cannot be attacked BSM.enemyInBattle.Remove(this.gameObject); //disable selector selector.SetActive(false); if (BSM.enemyInBattle.Count > 0) { //remove all hero enemy input for (int i = 0; i < BSM.performList.Count; i++) { if (i != 0) //prevent to false delete { if (BSM.performList[i].attacksGameObject == this.gameObject) { BSM.performList.Remove(BSM.performList[i]); } if (BSM.performList[i].attackersTarget == this.gameObject) { BSM.performList[i].attackersTarget = BSM.enemyInBattle[Random.Range(0, BSM.enemyInBattle.Count)]; } } } } //change the color or dead animation this.gameObject.GetComponentInChildren <MeshRenderer>().material.color = new Color32(105, 105, 105, 255); //gray //set to dead isAlive = false; //reset or refresh enemy button BSM.EnemyButton(); //Cheking condition BSM.battleStates = BattleStateMachine.PerformAction.CHECKLIFE; } break; } }