Exemplo n.º 1
0
        private void UseSkill(SkillData skill, CharacterBattleData player)
        {
            CharacterBattleData usedPlayer = null, enemyPlayer = null;

            if (player.characterProperties.id == player1.characterProperties.id)
            {
                usedPlayer  = player1;
                enemyPlayer = player2;
            }
            else if (player.characterProperties.id == player2.characterProperties.id)
            {
                usedPlayer  = player2;
                enemyPlayer = player1;
            }
            for (int i = 0; i < skill.listSkillEffect.Length; i++)
            {
                if (skill.listSkillEffect[i] != null)
                {
                    if (skill.listSkillEffect[i].typeEffect == ETypeEffect.ATTACK)
                    {
                        enemyPlayer.hp -= skill.listSkillEffect[i].effectValue;
                        if (enemyPlayer.hp <= 0)
                        {
                            _isComplete = true;
                            EndBattleCallBack.Invoke(usedPlayer, enemyPlayer);
                            return;
                        }
                        UpdateHpAndMpCallBack.Invoke(player1, player2);
                        SkillAttackCallBack.Invoke(enemyPlayer, skill.listSkillEffect[i]);
                    }
                    else if (skill.listSkillEffect[i].typeEffect == ETypeEffect.BUFF)
                    {
                        if (skill.listSkillEffect[i].typeAction == ESkillEffect.HEAL)
                        {
                            usedPlayer.RecoverHp(skill.listSkillEffect[i].effectValue);
                            UpdateHpAndMpCallBack.Invoke(player1, player2);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
    private void EndDialog()
    {
        Animator.SetBool("IsOpen", false);
        _isStarted = false;
        // if event exists, invoke
        if (Type == "START")
        {
            StartBattle?.Invoke();
        }
        else if (Type == "END")
        {
            EndBattle?.Invoke();
        }
        else if (Type == "STARTCUTSCENE")
        {
            EndStartingCutscene?.Invoke();
        }
        else if (Type == "PLAYERSTARTCUTSCENE")
        {
            PlayerEndStartingCutscene?.Invoke();
        }
        else if (Type == "HEALTHPICKUP")
        {
            HealthPickup?.Invoke();
        }
        else if (Type == "ENDING")
        {
            FinalScene?.Invoke();
        }

        AudioSource source = FindObjectOfType <GameStateManager>().gameObject.GetComponent <AudioSource>();

        if (source)
        {
            source.mute = false;
        }
    }