File size: 1,656 Bytes
025687f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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

MAX_GCD_GROUP = 10

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
CRITICAL_POWER_BASE = 1.75

AGILITY_TO_CRITICAL_STRIKE = 655 / BINARY_SCALE
STRENGTH_TO_ATTACK_POWER = 153 / BINARY_SCALE
STRENGTH_TO_OVERCOME = 307 / BINARY_SCALE
SPIRIT_TO_CRITICAL_STRIKE = 655 / BINARY_SCALE
SPUNK_TO_ATTACK_POWER = 184 / BINARY_SCALE
SPUNK_TO_OVERCOME = 307 / BINARY_SCALE

DELTA_SCALE = 1
MAJOR_DELTA = 198
PHYSICAL_DELTA = 398
MAGICAL_DELTA = 475
MINOR_DELTA = 883
WEAPON_DELTA = 597


def PHYSICAL_ATTACK_POWER_COF(cof):
    return cof / FRAME_PER_SECOND / PHYSICAL_DAMAGE_SCALE


def PHYSICAL_DOT_ATTACK_POWER_COF(cof, interval):
    return PHYSICAL_ATTACK_POWER_COF(cof * interval / FRAME_PER_SECOND / DOT_DAMAGE_SCALE)


def MAGICAL_ATTACK_POWER_COF(cof):
    return cof / FRAME_PER_SECOND / MAGICAL_DAMAGE_SCALE


def MAGICAL_DOT_ATTACK_POWER_COF(cof, interval):
    return MAGICAL_ATTACK_POWER_COF(cof * interval / FRAME_PER_SECOND / DOT_DAMAGE_SCALE)


def WEAPON_DAMAGE_COF(cof):
    return cof / BINARY_SCALE