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); } }
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); }