File size: 1,271 Bytes
c9d1b27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# === HP ===
MAX_HP = 1200       # Agent HP
ENEMY_HP = 1000     # Enemy HP (asymmetric)
MAX_TURNS = 25

# === Attack Categories (RL Level) ===
ATTACK_TYPES = ["PHYSICAL", "CE", "TECHNIQUE"]

# === Base Damage per Category ===
BASE_DAMAGE = {
    "PHYSICAL": 120,
    "CE": 150,
    "TECHNIQUE": 220
}

# === Resistance ===
RESISTANCE_MIN = 0
RESISTANCE_MAX = 80
ADAPT_INCREASE = 40
ADAPT_DECREASE = 20

# === Judgment Strike ===
JUDGMENT_BASE_DAMAGE = 100
JUDGMENT_BURST_DAMAGE = 350

# === Regeneration ===
HEAL_AMOUNT = 300
HEAL_COOLDOWN = 3

# === Action Mapping ===
ACTION_ADAPT_PHYSICAL = 0
ACTION_ADAPT_CE = 1
ACTION_ADAPT_TECHNIQUE = 2
ACTION_JUDGMENT = 3
ACTION_REGENERATION = 4
VALID_ACTIONS = [0, 1, 2, 3, 4]

# === Action to Resistance Category ===
ACTION_TO_TYPE = {
    0: "PHYSICAL",
    1: "CE",
    2: "TECHNIQUE"
}

# === Subtypes ===
SUBTYPES = {
    "PHYSICAL": ["SLASH", "IMPACT", "PIERCE"],
    "CE": ["BLAST", "WAVE", "BEAM"],
    "TECHNIQUE": ["SPIKE", "DELAYED", "PATTERN"]
}

# === Subtype Effects ===
ARMOR_BYPASS_RATIO = 0.2  # PIERCE ignores 20% resistance (ignore_armor)

# === Curriculum Enemy Phases ===
PHASE_1_END = 5     # Turns 1-5: always PHYSICAL
PHASE_2_END = 15    # Turns 6-15: cycling with 15% randomness
PHASE_2_DEVIATION = 0.15