---
doc_id: "DOC-GDD-012"
title: "Toán Học Chiến Đấu: Sát Thương, Giáp Phi Tuyến & Boss Stagger"
category: "game_design"
diataxis_type: "reference"
status: "canonical"
version: "2026.1"
owner_role: "poe2_game_designer"
last_updated: "2026-09-29"
tags: ["combat", "mathematics", "damage", "defense", "armour", "stagger", "evasion-entropy"]
related_code:
  - "server/combat/damage_calculator.py"
  - "tests/unit/test_damage_and_defense_calculator.py"
related_docs:
  - "docs/game_design/POE2_INSPIRED_SKILL_TAGS_AND_BUILD_SYSTEM.md"
  - "docs/standards/ENGINEERING_STANDARDS_2026.md"
summary: "Đặc tả toán học tính toán sát thương đa tầng, bể entropy né tránh, giáp phi tuyến và thanh gãy thế Boss Stagger theo tinh thần PoE2."
---

# FREEEXILE COMBAT MATHEMATICS: DAMAGE & DEFENSE FORMULAS (PoE2 SPIRIT)

Tài liệu đặc tả toán học và kiến trúc tính toán Sát Thương (Offense) và Phòng Thủ (Defense) cho Nhân Vật, Quái Vật Thường/Tinh Anh và Cổ Quái / Boss trong **FreeExile**.

---

## 1. TỔNG QUAN KIẾN TRÚC & NGUYÊN TẮC THIẾT KẾ

Hệ thống chiến đấu FreeExile kế thừa triết lý **Path of Exile 2 (PoE2)** kết hợp bản sắc Cổ Võ Hoang Dã:
1. **Server-Authoritative $100\%$**: Mọi phép tính giảm trừ sát thương, roll chính xác/né tránh, và tích lũy điểm gãy thế (Stagger) đều được tính toán đơn phương trên Server (Python 3.11 logic & C++20 hot-path native engine).
2. **Deterministic Evasion Entropy**: Loại bỏ hoàn toàn chuỗi may rủi liên tiếp (Streak RNG) bằng cơ chế Entropy Pool [0..99].
3. **Non-linear Armour Mitigation**: Giáp giảm sát thương vật lý theo hàm phi tuyến $DR = \frac{\text{Armour}}{\text{Armour} + 5 \times \text{Damage}}$. Giáp hiệu quả cực cao với đòn đánh nhỏ nhưng bị xuyên thủng bởi đòn nặng (Boss Heavy Slam).
4. **PoE2 Boss Stagger & Vulnerability**: Boss sở hữu thanh Khí Phách (Poise / Stagger Meter). Đòn đánh nặng tích lũy Stagger; khi đầy 100%, Boss bị gãy thế gục ngã trong 4.0 giây và nhận thêm $+30\%$ sát thương từ mọi nguồn.

```mermaid
flowchart TD
    A["Đòn Tấn Công (DamagePacket)"] --> B{"Huyễn Ảnh Bộ (i-frame 0.25s)?"}
    B -- Có --> C["Né Hoàn Toàn (0 Sát Thương)"]
    B -- Không --> D["Kiểm Tra Chính Xác vs Né Tránh (Entropy)"]
    D -- Trượt --> C
    D -- Trúng --> E{"Đỡ Đòn (Block/Parry)?"}
    E -- Đỡ thành công --> F["Chặn Hoàn Toàn / Giảm 100%"]
    E -- Không --> G["Tính Nhân Tử (Increased %, More x, Crit)"]
    G --> H["Giảm Trừ Theo Kênh Sát Thương"]
    H --> H1["Vật Lý: Giáp Phi Tuyến (Armour DR)"]
    H --> H2["Nguyên Tố & Chaos: Kháng Tính - Xuyên Kháng"]
    H1 --> I["Nhân Tử Nhận Sát Thương (Shock, Stagger +30%)"]
    H2 --> I
    I --> J["Hộ Thể / Khí Kình (Ward/ES) Hấp Thụ Trước"]
    J --> K["Sinh Lực (Life/HP) Trừ Phần Còn Lại"]
    K --> L["Cộng Dồn Stagger Vào Boss / Kích Hoạt Phase Enrage"]
```

---

## 2. CÔNG THỨC TOÁN HỌC CỐT LÕI (MATHEMATICAL FORMULAS)

### 2.1. Né Tránh & Bể Entropy (Accuracy vs Evasion)
Tỷ lệ trúng đòn được tính toán qua hàm:
$$\text{Hit Chance} = \frac{\text{Accuracy}}{\text{Accuracy} + \left(\frac{\text{Evasion}}{4.0}\right)^{0.8}}$$
- Giới hạn cứng trong khoảng $[0.05, 0.95]$ (tối thiểu 5%, tối đa 95% trúng).
- **Thuật toán Entropy**:
  $$\text{New Entropy} = \text{Current Entropy} + \lfloor \text{Hit Chance} \times 100 \rfloor$$
  $$\text{Nếu } \text{New Entropy} \ge 100 \implies \text{Trúng đòn, } \text{Next Entropy} = \text{New Entropy} - 100$$
  $$\text{Nếu } \text{New Entropy} < 100 \implies \text{Né thành công, } \text{Next Entropy} = \text{New Entropy}$$

### 2.2. Giáp Phi Tuyến (Non-Linear Armour Reduction)
Tỷ lệ giảm trừ sát thương vật lý $DR_{\text{Armour}}$ dựa trên sát thương vật lý nhận vào ($D_{\text{phys}}$):
$$DR_{\text{Armour}} = \min\left(0.90, \frac{\text{Armour}}{\text{Armour} + 5.0 \times D_{\text{phys}}}\right)$$

| Tình Huống | Giá Trị Giáp | Sát Thương Đến | DR Tính Được | Sát Thương Thực Nhận |
| :--- | :--- | :--- | :--- | :--- |
| Quái nhỏ cào | 5.000 | 100 | $90.9\% \rightarrow 90.0\%$ (Cap) | 10 |
| Quái Tinh Anh đánh | 5.000 | 1.000 | $\frac{5000}{5000 + 5000} = 50.0\%$ | 500 |
| Boss Đại Nộ Giáng Đòn | 5.000 | 5.000 | $\frac{5000}{5000 + 25000} = 16.67\%$ | 4.166 |

### 2.3. Kháng Tính & Xuyên Kháng (Resistances & Penetration)
$$\text{Effective Resistance} = \min(\text{Uncapped Resistance}, \text{Max Cap}) - \text{Penetration}$$
$$\text{Mitigated Damage} = D_{\text{channel}} \times (1.0 - \text{Effective Resistance})$$
- Trần kháng mặc định: $75\%$, sàn kháng chịu đòn: $-200\%$.
- Xuyên kháng ($Pen$) trừ trực tiếp vào kháng hiệu dụng, bỏ qua lượng kháng dư (Overcap).

### 2.4. Thứ Tự Tiêu Hao Lớp Thủ (Absorption Pipeline)
1. **Ward / Energy Shield (Khí Kình Hộ Thể)**: Hấp thụ $100\%$ sát thương cho tới khi cạn kiệt. Nếu sau 4.0 giây không nhận thêm sát thương, Ward hồi phục với tốc độ $20\% \text{ Max Ward}/\text{giây}$.
2. **Life (Sinh Lực)**: Phần sát thương còn lại trừ trực tiếp vào Life.

---

## 3. CHỈ SỐ & CÔNG THỨC SCALING CỦA QUÁI VẬT (MONSTERS)

### 3.1. Đường Cong Cơ Bản Theo Cấp Độ (Level 1 .. 100)
$$\text{Base Life}(L) = 50.0 \times \left(1.0 + \frac{L}{10.0}\right)^{1.8} + 30.0 \times L$$
$$\text{Base Damage}(L) = 8.0 \times \left(1.0 + \frac{L}{12.0}\right)^{1.6} + 4.0 \times L$$
$$\text{Base Armour}(L) = 15.0 \times L^{1.2}$$
$$\text{Base Evasion}(L) = 20.0 \times L^{1.15}$$

### 3.2. Hệ Số Bậc Quái (Rank Multipliers)
| Phân Hạng (Rank) | Nhân Tử Máu | Nhân Tử Giáp | Kháng Nguyên Tố | Kháng Chaos | Giảm AoE |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **COMMON (Thường)** | $1.0\times$ | $1.0\times$ | $0\%$ | $0\%$ | $0\%$ |
| **MAGIC (Tinh Anh)** | $2.2\times$ | $1.3\times$ | $15\%$ | $0\%$ | $0\%$ |
| **RARE (Thủ Lĩnh Dị Biến)** | $4.5\times$ | $1.8\times$ | $30\%$ | $15\%$ | $10\%$ |
| **BOSS (Cổ Quái / Map Boss)**| $20.0\times$ | $2.5\times$ | $40\%$ | $25\%$ | $25\%$ |

---

## 4. CƠ CHẾ BOSS POE2: STAGGER / POISE & ENRAGE PHASES

### 4.1. Thanh Khí Phách & Cơ Chế Gãy Thế (Stagger System)
- **Dung Lượng Khí Phách**: $\text{Max Stagger Poise} = 0.15 \times \text{Boss Max Life}$.
- **Tích Lũy**: Đòn đánh cận chiến nặng (Hammer, Two-Handed Slam, Stun skills) tích lũy điểm Stagger.
- **Trạng Thái Khai Phách (Staggered State)**:
  - Khi thanh Stagger đạt $100\%$, Boss bị choáng gục ngã trong $4.0\text{ giây}$.
  - Trong thời gian này, Boss nhận thêm $+30\%$ sát thương từ mọi nguồn ($\text{Amplification} = 1.30$).
  - Sau khi kết thúc, Boss hồi phục và có $8.0\text{ giây}$ hồi chiêu miễn nhiễm tích lũy lại.
  - Nếu người chơi ngừng đánh sau 5.0 giây, điểm Stagger sẽ tự suy giảm $10\%/\text{giây}$.

### 4.2. Chuyển Đổi Giai Đoạn Đại Nộ (Multi-Phase Enrage)
- **Phase 1: Bình Thường ($100\% \rightarrow 66\%$ HP)**: Đòn đánh cơ bản.
- **Phase 2: Cuồng Nộ Huyết Sát ($66\% \rightarrow 33\%$ HP)**: $+25\%$ sát thương, $+10\%$ xuyên kháng Hỏa/Vật lý.
- **Phase 3: Bản Năng Diệt Tuyệt ($< 33\%$ HP)**: $+50\%$ sát thương, $+25\%$ xuyên kháng, đòn đánh lan diện rộng (AoE).

---

## 5. CẤU TRÚC MÃ NGUỒN & MINH CHỨNG TRIỂN KHAI

- [server/combat/combat_types.py](file:///c:/Projects/FreeExile/server/combat/combat_types.py): DTOs, Enums, DamageVector, DamagePacket, DefenseSheet, BossStaggerState.
- [server/combat/damage_calculator.py](file:///c:/Projects/FreeExile/server/combat/damage_calculator.py): Lõi tính toán thuần túy (Entropy, Armour DR, Resistances, Ward, Stagger).
- [server/combat/monster_scaling.py](file:///c:/Projects/FreeExile/server/combat/monster_scaling.py): Đường cong cấp độ 1..100, Rank multipliers, Boss phase triggers.
- [server/combat/combat_engine.py](file:///c:/Projects/FreeExile/server/combat/combat_engine.py): Điều phối thực thể chiến đấu, tick rate 30Hz, hồi Ward và Stagger.
- [server_cpp/include/combat/CombatEngine.hpp](file:///c:/Projects/FreeExile/server_cpp/include/combat/CombatEngine.hpp): Header C++ đồng bộ công thức Native hiệu năng cao.
- [tests/unit/test_damage_and_defense_calculator.py](file:///c:/Projects/FreeExile/tests/unit/test_damage_and_defense_calculator.py): Bộ 10 test case TDD kiểm chứng đạt 100%.
