# Card Template

### 1. Giới thiệu

CardTemplate là mẫu định nghĩa sẵn cho từng loại thẻ (card) trong game, được thiết kế bởi game designer.

* Lưu trữ thông tin gốc, cố định của mỗi loại card (không thay đổi giữa các bản sao).
* Giúp tái sử dụng dữ liệu khi tạo nhiều card cùng loại mà không cần khởi tạo lại từ đầu.
* Dùng CardTemplate để lấy dữ liệu gốc cho thẻ.
* Tạo một CardModel instance chứa thông tin riêng biệt (như cấp độ, cấp skill, skin, sao…) nhưng vẫn tham chiếu đến CardTemplate để biết tên, kỹ năng gốc…
* Nếu 1000 người chơi đều có card “Ahyeon”, thì cả 1000 đều dùng chung CardTemplate đó nhưng 1000 người sẽ có chỉ số riêng biệt tùy vào cách họ nâng cấp, cày...
* Nhẹ hơn về bộ nhớ, dễ bảo trì, và giúp sửa 1 lần là áp dụng toàn bộ.

***

### 2. Các dữ liệu cơ bản

* Id: chứa mã riêng biệt của template cho việc định danh và tìm kiếm tham chiếu.
* Name: tên của card.
* History: tiểu sử của nhân vật trong card.
* Class: hệ nghề của card như Juggernaut  , Assassin  , Demolisher  , Tactician  , Guardian  &#x20;và Medic.

***

### 3. Attributes

Chỉ số là một trong những thứ quyết định sự đa dạng nói chung và độc đáo nói riêng của card trong game.

* Mỗi card cần tuân thủ cách thiết kế chỉ số sao cho phù hợp với class của nó, giúp người chơi dễ quản lý đội hình.
* Mỗi nhân vật sẽ được định hướng trước bằng chỉ số gốc, làm rõ vai trò trong đội hình.
* Khi nâng cấp, card sẽ phát triển từ chỉ số gốc — chỉ số nào càng cao ở gốc thì khi nâng cấp càng phát huy mạnh.
* CardTemplate chứa các chỉ số gốc này và không thay đổi theo từng card riêng lẻ.
* CardModel khi được tạo sẽ sao chép chỉ số từ CardTemplate và phát triển từ đó.\
  Ví dụ: khi nâng sao +10% Attack, hệ thống sẽ lấy 10% chỉ số Attack gốc từ CardTemplate để cộng vào CardModel.

***

### 4. Skills

Chứa những SkillTemplate có các option và config riêng biệt cho nhân vật đó, CardModel chỉ cần lưu chữ upgrade level của skill.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vanhaodev.gitbook.io/card-game/game-function/module/card/system-design/card-template.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
