Ejemplo n.º 1
0
    // 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;
        }
    }