using System; using UnityEngine; public static class PlayerDamageCalculate { private static PlayerAttribute pAttr { get { return R.Player.Attribute; } } public static int GetFinalDamage(float attackPercent, int atkLevel, string atkName = "") { float num = (float)PlayerDamageCalculate.PlayerAtk() * attackPercent * Mathf.Pow(1.5f, (float)Mathf.Clamp(atkLevel - 1, 0, int.MaxValue)); float num2 = UnityEngine.Random.Range(0.9f, 1.1f) * num; if (atkName != "Charge1EndLevel1") { return (int)num2; } float num3 = 1f + 0.5f * (float)(Mathf.Clamp(R.Player.Action.absorbNum - 3, 0, int.MaxValue) / 3); num2 = Mathf.Clamp(num2 * num3, 0f, 999f); return (int)num2; } private static int PlayerAtk() { float num = 1f; if (R.GameData.Difficulty == 0) { num = 1.5f; } float num2 = (float)PlayerDamageCalculate.pAttr.baseAtk * num; if (R.SceneData.assessmentData.CurrentComboNum >= 120) { return (int)(num2 * 1.5f); } if (R.SceneData.assessmentData.CurrentComboNum >= 80) { return (int)(num2 * 1.2f); } if (R.SceneData.assessmentData.CurrentComboNum >= 40) { return (int)(num2 * 1.1f); } return (int)num2; } }