public override void ChooseOption()
    {
        if (gameObject.tag == "Enemy1")
        {
            enemyName = CharacterName.Enemy1;
        }
        else if (gameObject.tag == "Enemy2")
        {
            enemyName = CharacterName.Enemy2;
        }
        else
        {
            enemyName = CharacterName.Enemy3;
        }

        int validAction = -1;

        while (validAction < 0)
        {
            int option = Random.Range(0, 3);
            switch (option)
            {
            case 0:
                validAction = Attack();
                if (validAction >= 0)
                {
                    enemyActionEvent.Invoke(validAction, Actions.Attack, enemyName);
                    actualAction = Actions.Attack;
                    destination  = playerPosition.transform.position;
                    ChangeAnimation(Animations.MoveIn);
                }
                break;

            case 1:
                validAction = Magic();
                if (validAction >= 0)
                {
                    enemyActionEvent.Invoke(validAction, Actions.Magic, enemyName);
                    actualAction = Actions.Magic;
                    destination  = playerPosition.transform.position;
                    ChangeAnimation(Animations.MoveIn);
                }
                break;

            case 2:
                validAction = Heal();
                if (validAction >= 0)
                {
                    ChangeAnimation(Animations.Cure);
                }
                break;
            }
        }
    }
Example #2
0
 public void OnAction(EnemyEventInfo info)
 {
     EnemyAction.Invoke(info);
 }