예제 #1
0
def crit(c: Character) -> int:
    # f(CRIT) = ⌊ 200 · (CRIT - LevelModLv, SUB) / LevelModLv, DIV + 1400 ⌋
    level_mod = get_level_mod(c.level)
    return math.floor(200 *
                      (c.a.critical_hit_rate - level_mod.SUB) / level_mod.DIV +
                      1400)
예제 #2
0
def wd(c: Character) -> int:
    # f(WD) = ⌊ (LevelModLv, MAIN · JobModJob, Attribute / 1000) + WD ⌋
    level_mod = get_level_mod(c.level)
    return math.floor((level_mod.MAIN * get_main_attribute(c) / 1000) +
                      c.weapon_damage)
예제 #3
0
def tnc(c: Character) -> int:
    # f(TNC) = ⌊ 100 · ( TNC - LevelModLv, SUB )/ LevelModLv, DIV + 1000 ⌋
    level_mod = get_level_mod(c.level)
    return math.floor(100 * (c.a.tenacity - level_mod.SUB) / level_mod.DIV +
                      1000)
예제 #4
0
def det(c: Character) -> int:
    # f(DET) = ⌊ 130 · ( DET - LevelModLv, Main )/ LevelModLv, DIV + 1000 ⌋
    level_mod = get_level_mod(c.level)
    return math.floor(130 *
                      (c.a.determination - level_mod.MAIN) / level_mod.DIV +
                      1000)
예제 #5
0
def crit(c: Character) -> float:
    # p(CHR) = ⌊ 200 · ( CHR - LevelModLv, SUB )/ LevelModLv, DIV + 50 ⌋ / 10
    level_mod = get_level_mod(c.level)
    return math.floor(200 *
                      (c.a.critical_hit_rate - level_mod.SUB) / level_mod.DIV +
                      50) / 10
예제 #6
0
def direct_hit(c: Character) -> float:
    # p(DHR) = ⌊ 550 · (DHR - LevelModLv, SUB) / LevelModLv, DIV ⌋ / 10
    level_mod = get_level_mod(c.level)
    return math.floor(
        550 * (c.a.direct_hit_rate - level_mod.SUB) / level_mod.DIV) / 10