public override void Use(BattleCharacter owner, BattleCharacter target)
    {
        logic = BattleDirectorController.Instance;

        //成功判定
        bool m_success = BattleFormula.CheckRate(successRate);

        if (!m_success)
        {
            //失敗メッセージを表示
            logic.Message(target.CharacterName + failureMessage);
            return;
        }

        //命中
        bool m_hit = BattleFormula.CheckRate(hitRate);

        if (!m_hit)
        {
            //Miss
            logic.Miss(target);
            return;
        }

        int damage = BattleFormula.PhysicalAttackDamage(owner.status, target.status);

        damage = Mathf.RoundToInt(damage * damageRate);

        //クリティカル
        bool m_critical = BattleFormula.CheckRate(1);

        if (m_critical)
        {
            damage = Mathf.RoundToInt(damage * 1.5f);
        }

        //成功メッセージを表示
        if (successMessage != string.Empty)
        {
            logic.Message(owner.CharacterName + successMessage);
        }
        logic.DamageLogic(target, damage, m_critical);
    }
Example #2
0
 private void Awake()
 {
     Instance = this;
 }