Esempio n. 1
0
    protected void ApplyDamage(CUseEffect.HpChange hpChange)
    {
        int ratioToAmount;

        switch (hpChange.ratioType)
        {
        case CUseEffect.HpChange.EHpRatioType.Current:
            ratioToAmount = hpChange.RatioToAmount(CurrentHp);
            break;

        case CUseEffect.HpChange.EHpRatioType.Max:
            ratioToAmount = hpChange.RatioToAmount(TotalMaxHp);
            break;

        case CUseEffect.HpChange.EHpRatioType.Lost:
            ratioToAmount = hpChange.RatioToAmount(TotalMaxHp - CurrentHp);
            break;

        default:
            Debug.LogWarning("Not Defined Ratio Type");
            ratioToAmount = 0;
            break;
        }

        int totalDamage = hpChange.fixedAmount + hpChange.enhancePercentRate + ratioToAmount;

        if (hpChange.isTrueDamage)
        {
            DamagedDisregardDefence(totalDamage);
        }
        else
        {
            DamegedRegardDefence(totalDamage);
        }
    }
Esempio n. 2
0
    protected void ApplyHeal(CUseEffect.HpChange hpChange)
    {
        int ratioToAmount;

        switch (hpChange.ratioType)
        {
        case CUseEffect.HpChange.EHpRatioType.Current:
            Debug.LogWarning("힐에 현재 체력 비례 적용 불가");
            ratioToAmount = hpChange.RatioToAmount(CurrentHp);
            break;

        case CUseEffect.HpChange.EHpRatioType.Max:
            ratioToAmount = hpChange.RatioToAmount(TotalMaxHp);
            break;

        case CUseEffect.HpChange.EHpRatioType.Lost:
            ratioToAmount = hpChange.RatioToAmount(TotalMaxHp - CurrentHp);
            break;

        default:
            Debug.LogWarning("Not Defined Ratio Type");
            ratioToAmount = 0;
            break;
        }
        Heal(hpChange.fixedAmount + hpChange.enhancePercentRate + ratioToAmount);
    }