IEnumerator PlayerAttackRoutine()
    {
        SkillEffect se = bcManager.getBattleSkillEffect();

        uiManager.showPlayerAttack();
        bcManager.destroyAllDice();         // 清掉骰子模型

        uiManager.showPlayerSkillActivate();

        if (se == null)
        {
            yield return(new WaitForSeconds(0.8f));
        }
        else
        {
            yield return(new WaitForSeconds(1));
        }

        if (bcManager.turnDamage > 0)
        {
            uiManager.showPlayerAttackAnim();

            yield return(new WaitForSeconds(0.5f));

            audioManager.playPlayerAttack();
            if (se != null && se.isSkillActivated && se.isDamage)
            {
                Instantiate(bcManager.getBattleSkill().skillprefab, monster.transform.position, Quaternion.identity);
            }

            else
            {
                Instantiate(normalAttackPrefab, monster.transform.position, Quaternion.identity);
            }
            uiManager.showMonsterHurt();
            yield return(new WaitForSeconds(1));
        }

        if (se != null && se.isHeal && se.heal > 0)
        {
            Instantiate(HealPrefab, currentCharacter.transform.position, Quaternion.identity);
            uiManager.showPlayerRecoverHp();
            yield return(new WaitForSeconds(1));
        }

        // demo用
        if (monster.Hp <= 0)
        {
            // 提醒一下,換scene前一定要將角色parent移回dataManager,不然就算有Don't Destroy,也因為父親被砍,而消失。
            // 只有戰敗死亡的時候,才不用管,反正都要重頭來過
            currentCharacter.transform.SetParent(dataManager.transform, false);
            currentCharacter.transform.localPosition = new Vector3(0f, 10f, 0f);
            screenEffectManager.fadeOutToLoot();
        }

        uiManager.updateMonsterUI();
        uiManager.updateCharacterUI();
        uiManager.showNextButton();
        currentUnitIndex = (currentUnitIndex + 1) % battleUnits.Length;
    }
예제 #2
0
    public void showPlayerSkillActivate()
    {
        SkillEffect se = bcManager.getBattleSkillEffect();

        if (se == null)
        {
            // 沒使用技能
            Debug.Log("普通攻擊動畫!");
        }
        else
        {
            if (se.isSkillActivated)
            {
                // 技能發動成功
                battleSkillText.text = usingBattleSkill.skillName_ch;
                playSkillActivatedAnimation();
                Debug.Log("技能動畫! 技能成功");
            }
            else
            {
                // 技能沒發動成功
                Debug.Log("普通攻擊動畫! 技能失敗");
            }
        }
    }