Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        switch (CurrentState)
        {
        case (TurnState.PROCESSING):
        {
            //UpgradeProgressBar();
            CurrentState = TurnState.CHOOSEACTION;
            break;
        }

        case (TurnState.CHOOSEACTION):
        {
            if (bsm.HeroesInBattle.Count > 0)
            {
                ChooseAction();
            }
            CurrentState = TurnState.WAITING;
            break;
        }

        case (TurnState.WAITING):
        {
            // idle state
            break;
        }

        case (TurnState.ACTION):
        {
            StartCoroutine(timeForAction());
            break;
        }

        case (TurnState.DEAD):
        {
            if (!alive)
            {
                return;
            }
            else
            {
                // change tag to dead
                this.gameObject.tag = "DeadEnemy";

                // cannot be attacked by enemy
                bsm.EnemiesInBattle.Remove(this.gameObject);

                // deactivate selector
                selector.SetActive(false);

                // remove item from performList
                for (int i = 0; i < bsm.ExecutePerformersList.Count; ++i)
                {
                    if (bsm.ExecutePerformersList[i].AttackersGameObject == this.gameObject)
                    {
                        bsm.ExecutePerformersList.Remove(bsm.ExecutePerformersList[i]);
                    }
                }

                // death animation

                // // PLACEHOLDER FUNCITON UNTIL DEATH ANIMATIONS ARE IMPLEMENTED //
                //this.gameObject.GetComponent<MeshRenderer>().material.color = new Color32(0, 0, 0, 64);

                // decrement characters list
                bsm.DecrementCharactersCount();
                Debug.Log("charactersCount decremented.");

                alive = false;
                Debug.Log(this.gameObject.name + ".alive = false");
            }

            break;
        }

        default:
        {
            break;
        }
        }
    }
    }   // VOID START

    // Update is called once per frame
    void Update()
    {
        //Debug.Log(CurrentState);
        switch (CurrentState)
        {
        case (TurnState.PROCESSING):
        {
            //UpgradeProgressBar();
            CurrentState = TurnState.ADDTOLIST;
            break;
        }

        case (TurnState.ADDTOLIST):
        {
            bsm.HeroesToManage.Add(this.gameObject);
            CurrentState = TurnState.WAITING;
            break;
        }

        case (TurnState.WAITING):
        {
            // idle state
            break;
        }

        /*case (TurnState.SELECTING):
         *  {
         *      break;
         *  }//*/
        case (TurnState.ACTION):
        {
            // Resets hero's defense after guarding
            Hero.CurrentDEF = Hero.BaseDEF;

            if (bsm.EnemiesInBattle.Count > 0)
            {
                if (Action == ActionType.GUARD)
                {
                    StartCoroutine(guard());
                }
                else if (Action == ActionType.MELEE_ATTACK)
                {
                    StartCoroutine(timeForAction());
                }
            }
            break;
        }

        case (TurnState.DEAD):
        {
            if (!alive)
            {
                return;
            }
            else
            {
                // change tag to dead
                this.gameObject.tag = "DeadHero";

                // cannot be attacked by enemy
                bsm.HeroesInBattle.Remove(this.gameObject);

                // not recognized by manager
                bsm.HeroesToManage.Remove(this.gameObject);

                // deactivate selector
                selector.SetActive(false);

                // reset gui
                bsm.AttackPanel.SetActive(false);
                bsm.EnemySelectPanel.SetActive(false);

                // remove item from performList
                for (int i = 0; i < bsm.PerformersList.Count; ++i)
                {
                    if (bsm.PerformersList[i].AttackersGameObject == this.gameObject)
                    {
                        bsm.PerformersList.Remove(bsm.PerformersList[i]);
                    }
                }

                // death animation

                // // PLACEHOLDER FUNCITON UNTIL DEATH ANIMATIONS ARE IMPLEMENTED //
                //this.gameObject.GetComponent<MeshRenderer>().material.color = new Color32(0, 0, 0, 64);

                // reset heroInput
                bsm.PlayerInput = BattleStateMachine.HeroGUI.ACTIVATE;
                Debug.Log(this.gameObject.name + ".heroInput Reset");

                // decrement characters list
                bsm.DecrementCharactersCount();
                Debug.Log("charactersCount decremented.");

                alive = false;
                Debug.Log(this.gameObject.name + ".alive = false");
            }

            break;
        }

        default:
        {
            break;
        }
        }
    }       // VOID UPDATE