Formulator / base /constant.py
AngoHF's picture
5.7 commit
c255694
BINARY_SCALE = 1024
DECIMAL_SCALE = 10000
FRAME_PER_SECOND = 16
LEVEL = 120
LEVEL_SCALE = 450
LEVEL_CONSTANT = 45750
LEVEL_REDUCTION = 0.05
DOT_DAMAGE_SCALE = 12
PHYSICAL_DAMAGE_SCALE = 10
MAGICAL_DAMAGE_SCALE = 12
CRITICAL_STRIKE_SCALE = 9.530 * (LEVEL_SCALE * LEVEL - LEVEL_CONSTANT)
CRITICAL_POWER_SCALE = 3.335 * (LEVEL_SCALE * LEVEL - LEVEL_CONSTANT)
OVERCOME_SCALE = 9.530 * (LEVEL_SCALE * LEVEL - LEVEL_CONSTANT)
HASTE_SCALE = 11.695 * (LEVEL_SCALE * LEVEL - LEVEL_CONSTANT)
STRAIN_SCALE = 9.189 * (LEVEL_SCALE * LEVEL - LEVEL_CONSTANT)
SURPLUS_SCALE = 13.192
SHIELD_SCALE = 5.091
SHIELD_BASE_MAP = {
124: 27550,
123: 26317,
122: 15528,
121: 11073
}
MAJOR_BASE = 41
BASE_CRITICAL_POWER = 1.75
AGILITY_TO_CRITICAL_STRIKE = 0.64
STRENGTH_TO_ATTACK_POWER = 0.15
STRENGTH_TO_OVERCOME = 0.3
SPIRIT_TO_CRITICAL_STRIKE = 0.64
SPUNK_TO_ATTACK_POWER = 0.18
SPUNK_TO_OVERCOME = 0.3
DELTA_SCALE = 1
MAJOR_DELTA = 218
PHYSICAL_DELTA = 439
MAGICAL_DELTA = 524
MINOR_DELTA = 974
WEAPON_DELTA = 658
def PHYSICAL_ATTACK_POWER_COF(cof):
return int(cof) / FRAME_PER_SECOND / PHYSICAL_DAMAGE_SCALE
def PHYSICAL_DOT_ATTACK_POWER_COF(cof, interval):
return int(cof) * interval / FRAME_PER_SECOND / DOT_DAMAGE_SCALE / FRAME_PER_SECOND / PHYSICAL_DAMAGE_SCALE
def MAGICAL_ATTACK_POWER_COF(cof):
return int(cof) / FRAME_PER_SECOND / MAGICAL_DAMAGE_SCALE
def MAGICAL_DOT_ATTACK_POWER_COF(cof, interval):
return int(cof) * interval / FRAME_PER_SECOND / DOT_DAMAGE_SCALE / FRAME_PER_SECOND / MAGICAL_DAMAGE_SCALE
def WEAPON_DAMAGE_COF(cof):
return int(cof) / BINARY_SCALE
def GLOBAL_DAMAGE_FACTOR(cof):
return ((int(cof) + int(cof < 0)) / BINARY_SCALE + BINARY_SCALE) / BINARY_SCALE
def SURPLUS_COF(cof):
return GLOBAL_DAMAGE_FACTOR(cof) * SURPLUS_SCALE