Compare commits

..
2 Commits
Author SHA1 Message Date
cthangover 07648cc236 Keep skill total labels visible in the grid; mod documentation 2026-10-29 09:26:16 +01:00
iisaev 4839ee71ad gitignore file 2026-10-28 15:19:58 +03:00
18 changed files with 495 additions and 8 deletions

No files matched your search

+1
View File
@@ -12,6 +12,7 @@ obj/
gen/
obj/
bin/
art_sources/
*.tres~
*.tscn~
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

+69
View File
@@ -0,0 +1,69 @@
# Skills Engine — the player's collection of skill cards
Skills Engine keeps the skills the player has collected and shows them in the **Skills** panel as cards. A skill can open a possibility in another mechanic (a passive "gate"), hand the player a new action card for battles, and add numbers to the **Collection effect** — the total of all collected skills.
It is part of Cthangover, where the player starts with one skill, **Slave Trader**.
## The Skills panel
Open it with the skills icon on the toolbar.
![The Skills panel in Cthangover: the Slave Trader card (Epic, Passive, +10% recruitment chance) in the grid, its description in the Card study on the right, and the Collection effect plate in the corner showing "+10% recruitment chance".](assets/skills-panel.jpg)
- **Tabs** filter by type — **Passive**, **Active**, **For character** — and the rarity row by rarity, from **Common** to **Legendary**; the search field and the sort list narrow the grid.
- **The frame colour and the diamonds** show a card's rarity.
- **Click a card** to see it in the **Card study**: picture, rarity and type badges, description, its effects and, for a skill that grants one, the action card it gives.
- **Collection effect** adds up the effects of all collected skills: two skills of +10% and +5% recruitment chance show +15%.
The Slave Trader card has no picture yet: the game names `characters/skills/slave_master` as its image, but no mod ships that file, so the frame stays empty.
## A skill definition
Skills are JSON files of kind `skill`, anywhere in a mod. This is Slave Trader from Cthangover — compare it with the panel above:
```json
{
"Kind": "skill",
"Items": [
{
"Id": "slave_master",
"Name": "characters/skills/slave_master_name",
"Description": "characters/skills/slave_master",
"Image": "characters/skills/slave_master",
"Type": 1,
"Rare": 3,
"Effects": [
{ "Key": "characters/skills/effects/recruit", "Value": 10, "Percent": true }
]
}
]
}
```
- `Name`, `Description` — translation keys.
- `Image` — the card picture.
- `Type` — `Active` (0), `Passive` (1) or `ForCharacter` (2); names or numbers both work. Slave Trader is **Passive**.
- `Rare` — `Common` (0), `Uncommon`, `Rare`, `Epic` (3), `Legendary`. Slave Trader is **Epic**.
- `Effects` — numbers for the Collection effect: `Key` is the translation key of what is improved, `Value` the amount, `Percent` whether it is shown with %. One key must keep the same unit in every skill, because the values are added up.
- `GrantsAction` (optional) — the id of an action card (see Characters Engine). Getting the skill also puts this card into the action pool of the **Character actions** panel.
## What a skill does in the game
The panel only shows a skill. What it changes is decided by the mods that check for it:
- Recruiting offers to **enslave** a defeated enemy only while the player has `slave_master`. The chance of success is the enemy's own `RecruitmentChance`; the +10% on the card is shown in the panel, but recruiting does not add it.
- A skill with `GrantsAction` gives its action card, which the player then puts into a character's slot.
## Give a skill from a scenario
```scenario
action character.add_skill skill_id=slave_master
```
Giving a skill twice does nothing the second time, so a repeated scene cannot duplicate it or its action card. Cthangover gives Slave Trader when a new game starts.
## If something goes wrong
1. **The skill does not appear.** The `skill_id` must match the skill's `Id`; an unknown id is written to the log as a warning.
2. **The card has no picture.** No mod ships an image under the name in `Image`.
3. **The Collection effect shows a strange total.** Two skills use the same effect `Key` with different `Percent` values.
+69
View File
@@ -0,0 +1,69 @@
# Skills Engine — la colección de cartas de habilidad del jugador
Skills Engine guarda las habilidades que el jugador ha reunido y las enseña en el panel **Habilidades** en forma de cartas. Una habilidad puede abrir una posibilidad en otra mecánica (una «compuerta» pasiva), entregar una carta de acción nueva para los combates y sumar números al **efecto de colección**: el total de todas las habilidades reunidas.
Forma parte de Cthangover, donde el jugador empieza con una sola habilidad, **Tratante de esclavos**.
## El panel Habilidades
Se abre con el icono de habilidades en la barra de herramientas.
![El panel Habilidades en Cthangover: la carta Tratante de esclavos (épica, pasiva, +10 % de probabilidad de reclutamiento) en la cuadrícula, su descripción en el estudio de cartas a la derecha, y la placa del efecto de colección en la esquina con «+10 % de probabilidad de reclutamiento».](assets/skills-panel.jpg)
- Las **pestañas** filtran por tipo — **Pasiva**, **Activa**, **De personaje** — y la fila de rarezas por rareza, de **Común** a **Legendaria**; el buscador y la lista de orden reducen la cuadrícula.
- **El color del marco y los rombos** muestran la rareza de la carta.
- **Haz clic en una carta** para verla en el estudio de cartas: imagen, distintivos de rareza y tipo, descripción, sus efectos y, si otorga una, la carta de acción que da.
- El **efecto de colección** suma los efectos de todas las habilidades reunidas: dos habilidades de +10 % y +5 % de reclutamiento muestran +15 %.
La carta del Tratante de esclavos aún no tiene imagen: el juego nombra `characters/skills/slave_master` como su imagen, pero ningún mod incluye ese archivo, así que el marco queda vacío.
## Una definición de habilidad
Las habilidades son archivos JSON de tipo `skill`, en cualquier parte de un mod. Este es el Tratante de esclavos, de Cthangover; compáralo con el panel de arriba:
```json
{
"Kind": "skill",
"Items": [
{
"Id": "slave_master",
"Name": "characters/skills/slave_master_name",
"Description": "characters/skills/slave_master",
"Image": "characters/skills/slave_master",
"Type": 1,
"Rare": 3,
"Effects": [
{ "Key": "characters/skills/effects/recruit", "Value": 10, "Percent": true }
]
}
]
}
```
- `Name`, `Description` — claves de traducción.
- `Image` — la imagen de la carta.
- `Type` — `Active` (0), `Passive` (1) o `ForCharacter` (2); valen tanto nombres como números. El Tratante de esclavos es **pasivo**.
- `Rare` — `Common` (0), `Uncommon`, `Rare`, `Epic` (3), `Legendary`. El Tratante de esclavos es **épico**.
- `Effects` — números para el efecto de colección: `Key` es la clave de traducción de lo que se mejora, `Value` la cantidad y `Percent` si se muestra con %. Una misma clave debe mantener la misma unidad en todas las habilidades, porque los valores se suman.
- `GrantsAction` (opcional) — el id de una carta de acción (véase Characters Engine). Al obtener la habilidad, esa carta entra también en la reserva de acciones del panel Acciones de personaje.
## Qué hace una habilidad en el juego
El panel solo muestra la habilidad. Lo que cambia lo deciden los mods que la comprueban:
- Recruiting ofrece **esclavizar** a un enemigo derrotado solo mientras el jugador tenga `slave_master`. La probabilidad de éxito es el `RecruitmentChance` del propio enemigo; el +10 % de la carta se ve en el panel, pero recruiting no lo suma.
- Una habilidad con `GrantsAction` entrega su carta de acción, que el jugador coloca después en el hueco de un personaje.
## Dar una habilidad desde un escenario
```scenario
action character.add_skill skill_id=slave_master
```
Dar una habilidad dos veces no hace nada la segunda, así que una escena repetida no puede duplicarla a ella ni a su carta de acción. Cthangover da el Tratante de esclavos al empezar una partida nueva.
## Si algo falla
1. **La habilidad no aparece.** El `skill_id` debe coincidir con el `Id` de la habilidad; un id desconocido se escribe en el registro como advertencia.
2. **La carta no tiene imagen.** Ningún mod incluye una imagen con el nombre puesto en `Image`.
3. **El efecto de colección muestra un total extraño.** Dos habilidades usan la misma clave de efecto con valores de `Percent` distintos.
+69
View File
@@ -0,0 +1,69 @@
# Skills Engine — プレイヤーのスキルカードコレクション
Skills Engine は、プレイヤーが集めたスキルを保管し、**スキル**パネルにカードとして並べます。スキルは、別のメカニクスの可能性を開く(パッシブの「門」)、戦闘用の新しいアクションカードを渡す、そして**コレクション効果** — 集めた全スキルの合計 — に数値を積み上げる、という働きを持ちます。
Cthangover の一部で、プレイヤーは一つのスキル**奴隷商人**から始めます。
## スキルパネル
ツールバーのスキル・アイコンで開きます。
![Cthangover のスキルパネル: 格子の中の奴隷商人のカード(エピック、パッシブ、スカウト成功率 +10%)、右側のカード研究にその説明、隅には「+10% スカウト成功率」と表示されるコレクション効果のプレート。](assets/skills-panel.jpg)
- **タブ**は種類で絞り込みます(**パッシブ**、**アクティブ**、**キャラクター用**)、レアリティの列はレアリティで絞ります。**コモン**から**レジェンド**まで。検索欄と並び替えで格子を狭められます。
- **枠の色とダイヤの模様**がカードのレアリティを示します。
- **カードをクリック**すると、カード研究で詳しく見られます。画像、レアリティと種類のバッジ、説明、その効果、そして付与スキルなら渡されるアクションカードです。
- **コレクション効果**は集めた全スキルの効果を合計します。+10% と +5% のスカウト成功率のスキル二つで +15% と表示されます。
奴隷商人のカードにはまだ画像がありません。ゲームは `characters/skills/slave_master` を画像として指定しますが、このファイルを同梱する mod がないため、枠は空のままです。
## スキルの定義
スキルは kind `skill` の JSON ファイルで、mod 内のどこに置いてもかまいません。こちらは Cthangover の奴隷商人です。上のパネルと見比べてください。
```json
{
"Kind": "skill",
"Items": [
{
"Id": "slave_master",
"Name": "characters/skills/slave_master_name",
"Description": "characters/skills/slave_master",
"Image": "characters/skills/slave_master",
"Type": 1,
"Rare": 3,
"Effects": [
{ "Key": "characters/skills/effects/recruit", "Value": 10, "Percent": true }
]
}
]
}
```
- `Name`、`Description` — 翻訳キー。
- `Image` — カードの画像。
- `Type` — `Active`(0)、`Passive`(1)、`ForCharacter`(2)。名前でも番号でもかまいません。奴隷商人は**パッシブ**。
- `Rare` — `Common`(0)、`Uncommon`、`Rare`、`Epic`(3)、`Legendary`。奴隷商人は**エピック**。
- `Effects` — コレクション効果に加算される数値。`Key` は何が強化されるかの翻訳キー、`Value` は量、`Percent` は % 付きで表示するかどうか。値は合計されるため、同じキーは全スキルで同じ単位である必要があります。
- `GrantsAction`(省略可)— アクションカードの id(Characters Engine を参照)。スキルを得ると、このカードもキャラクターアクションパネルのアクションプールに入ります。
## スキルがゲーム内ですること
パネルはスキルを見せるだけです。何を変えるかは、それを参照する mod が決めます。
- recruiting は、プレイヤーが `slave_master` を持っている間だけ、倒した敵を**奴隷にする**ことを提案します。成功確率は敵自身の `RecruitmentChance` で、カードの +10% はパネルに表示されるだけで、recruiting は加算しません。
- `GrantsAction` を持つスキルはそのアクションカードを渡し、プレイヤーは後でキャラクターのスロットに置きます。
## シナリオからスキルを与える
```scenario
action character.add_skill skill_id=slave_master
```
スキルを二度与えても二度目は何もしません。だから同じ場面が繰り返されても、スキルもそのアクションカードも複製されません。Cthangover は新しいゲームの開始時に奴隷商人を与えます。
## うまく動かないとき
1. **スキルが現れない。** `skill_id` はスキルの `Id` と一致しなければなりません。未知の id は警告としてログに書かれます。
2. **カードに画像がない。** `Image` に書かれた名前の画像を同梱する mod がありません。
3. **コレクション効果の合計がおかしい。** 二つのスキルが同じ効果 `Key` を異なる `Percent` で使っています。
+69
View File
@@ -0,0 +1,69 @@
# Skills Engine — 플레이어의 스킬 카드 컬렉션
Skills Engine은 플레이어가 모은 스킬을 보관하고 **스킬** 패널에 카드로 보여 줍니다. 스킬 하나는 다른 메커니즘의 가능성을 열어 주는(패시브 "관문") 존재일 수도 있고, 전투용 새 액션 카드를 건네 줄 수도 있으며, 모든 스킬의 합계인 **컬렉션 효과**에 수치를 더할 수도 있습니다.
Cthangover의 일부로, 플레이어는 스킬 하나 **노예 상인**으로 시작합니다.
## 스킬 패널
툴바의 스킬 아이콘으로 엽니다.
![Cthangover의 스킬 패널: 격자 속 노예 상인 카드(에픽, 패시브, 영입 확률 +10%), 오른쪽 카드 연구의 설명, 구석의 컬렉션 효과 판 "영입 확률 +10%".](assets/skills-panel.jpg)
- **탭**은 종류로 걸러 줍니다(**패시브**, **액티브**, **캐릭터용**), 희귀도 줄은 희귀도로 걸러 줍니다. **커먼**부터 **레전더리**까지. 검색창과 정렬 목록이 격자를 좁혀 줍니다.
- **테두리 색과 다이아몬드 무늬**가 카드의 희귀도를 보여 줍니다.
- **카드를 클릭**하면 카드 연구에서 자세히 볼 수 있습니다. 그림, 희귀도와 종류 배지, 설명, 효과, 그리고 부여 스킬이라면 주는 액션 카드까지요.
- **컬렉션 효과**는 모은 모든 스킬의 효과를 합산합니다. 영입 확률 +10%와 +5% 스킬 두 개는 +15%로 표시됩니다.
노예 상인 카드에는 아직 그림이 없습니다. 게임은 `characters/skills/slave_master`를 이미지로 지정하지만, 그 파일을 함께 제공하는 mod가 없어 테두리가 비어 있습니다.
## 스킬 정의
스킬은 kind `skill` JSON 파일로, mod 안 어디에나 둘 수 있습니다. Cthangover의 노예 상인입니다. 위 패널과 비교해 보세요.
```json
{
"Kind": "skill",
"Items": [
{
"Id": "slave_master",
"Name": "characters/skills/slave_master_name",
"Description": "characters/skills/slave_master",
"Image": "characters/skills/slave_master",
"Type": 1,
"Rare": 3,
"Effects": [
{ "Key": "characters/skills/effects/recruit", "Value": 10, "Percent": true }
]
}
]
}
```
- `Name`, `Description` — 번역 키.
- `Image` — 카드 그림.
- `Type` — `Active`(0), `Passive`(1), `ForCharacter`(2). 이름이든 숫자든 됩니다. 노예 상인은 **패시브**.
- `Rare` — `Common`(0), `Uncommon`, `Rare`, `Epic`(3), `Legendary`. 노예 상인은 **에픽**.
- `Effects` — 컬렉션 효과에 더해지는 수치. `Key`는 무엇이 강화되는지의 번역 키, `Value`는 양, `Percent`는 %로 표시할지 여부입니다. 값은 합산되므로 같은 키는 모든 스킬에서 같은 단위를 유지해야 합니다.
- `GrantsAction`(선택) — 액션 카드의 id(Characters Engine 참조). 스킬을 얻으면 이 카드도 캐릭터 액션 패널의 액션 풀에 들어갑니다.
## 스킬이 게임에서 하는 일
패널은 스킬을 보여 줄 뿐입니다. 무엇을 바꾸는지는 그것을 확인하는 mod들이 결정합니다.
- recruiting은 플레이어가 `slave_master`를 가지고 있는 동안에만 쓰러뜨린 적을 **노예로 삼자**고 제안합니다. 성공 확률은 적 자신의 `RecruitmentChance`이며, 카드의 +10%는 패널에 보일 뿐 recruiting이 더하지 않습니다.
- `GrantsAction`을 가진 스킬은 그 액션 카드를 건네 주고, 플레이어는 나중에 그것을 캐릭터의 슬롯에 놓습니다.
## 시나리오에서 스킬 주기
```scenario
action character.add_skill skill_id=slave_master
```
스킬을 두 번 줘도 두 번째에는 아무 일도 일어나지 않습니다. 그래서 반복되는 장면이 스킬이나 그 액션 카드를 복제하지 못합니다. Cthangover는 새 게임을 시작할 때 노예 상인을 줍니다.
## 문제가 생겼을 때
1. **스킬이 나타나지 않습니다.** `skill_id`는 스킬의 `Id`와 일치해야 합니다. 알 수 없는 id는 경고로 로그에 기록됩니다.
2. **카드에 그림이 없습니다.** `Image`에 적힌 이름의 그림을 제공하는 mod가 없습니다.
3. **컬렉션 효과의 합계가 이상합니다.** 두 스킬이 같은 효과 `Key`를 서로 다른 `Percent`로 사용하고 있습니다.
+69
View File
@@ -0,0 +1,69 @@
# Skills Engine — коллекция карточек умений игрока
Skills Engine хранит собранные игроком умения и показывает их в панели **Умения** карточками. Умение может открыть возможность в другой механике (пассивная «проходная дверь»), выдать игроку новую карточку действия для боёв и добавить числа к **эффекту коллекции** — сумме всех собранных умений.
Входит в Cthangover: там игра начинается с одного умения — **Работорговец**.
## Панель умений
Открывается иконкой умений на панели инструментов.
![Панель умений в Cthangover: карточка «Работорговец» (эпическая, пассивная, +10% к шансу вербовки) в сетке, её описание в области изучения карты справа и плашка эффекта коллекции в углу с надписью «+10% к шансу вербовки».](assets/skills-panel.jpg)
- **Вкладки** фильтруют по типу — **Пассивные**, **Активные**, **Для персонажа** — а ряд редкостей по редкости, от **обычной** до **легендарной**; поле поиска и список сортировки сужают сетку.
- **Цвет рамки и ромбики** показывают редкость карточки.
- **Щёлкните карточку**, чтобы рассмотреть её в области изучения карты: картинка, значки редкости и типа, описание, её эффекты, а для умения с выдачей — карточка действия, которую оно даёт.
- **Эффект коллекции** складывает эффекты всех собранных умений: два умения на +10% и +5% к вербовке покажут +15%.
У карточки «Работорговец» пока нет картинки: игра называет её изображением `characters/skills/slave_master`, но ни один мод не кладёт такого файла, поэтому рамка пустует.
## Описание умения
Умения — это JSON-файлы вида `skill`, в любом месте мода. Вот Работорговец из Cthangover — сравните с панелью выше:
```json
{
"Kind": "skill",
"Items": [
{
"Id": "slave_master",
"Name": "characters/skills/slave_master_name",
"Description": "characters/skills/slave_master",
"Image": "characters/skills/slave_master",
"Type": 1,
"Rare": 3,
"Effects": [
{ "Key": "characters/skills/effects/recruit", "Value": 10, "Percent": true }
]
}
]
}
```
- `Name`, `Description` — ключи перевода.
- `Image` — картинка карточки.
- `Type` — `Active` (0), `Passive` (1) или `ForCharacter` (2); подходят и имена, и числа. Работорговец — **пассивное**.
- `Rare` — `Common` (0), `Uncommon`, `Rare`, `Epic` (3), `Legendary`. Работорговец — **эпическое**.
- `Effects` — числа для эффекта коллекции: `Key` — ключ перевода того, что усиливается, `Value` — величина, `Percent` — показывать ли со знаком %. Один ключ во всех умениях должен измеряться в одних единицах, потому что значения складываются.
- `GrantsAction` (необязателен) — id карточки действия (см. Characters Engine). Получив умение, игрок получает и эту карточку — она попадает в пул действий панели «Действия персонажей».
## Что умение делает в игре
Панель только показывает умение. Что оно меняет, решают моды, которые его проверяют:
- Recruiting предлагает **обратить в рабство** поверженного врага, только пока у игрока есть `slave_master`. Шанс успеха — собственный `RecruitmentChance` врага; +10% с карточки видны в панели, но recruiting их не прибавляет.
- Умение с `GrantsAction` выдаёт свою карточку действия, которую игрок затем кладёт в слот персонажа.
## Выдать умение из сценария
```scenario
action character.add_skill skill_id=slave_master
```
Повторная выдача умения ничего не меняет, поэтому повторяющаяся сцена не задвоит ни умение, ни его карточку действия. Cthangover выдаёт Работорговца при начале новой игры.
## Если что-то пошло не так
1. **Умение не появляется.** `skill_id` должен совпадать с `Id` умения; неизвестный id попадает в лог предупреждением.
2. **У карточки нет картинки.** Ни один мод не кладёт изображение с именем из `Image`.
3. **Эффект коллекции показывает странную сумму.** Два умения используют один ключ эффекта с разными `Percent`.
+69
View File
@@ -0,0 +1,69 @@
# Skills Engine — bộ sưu tập thẻ kỹ năng của người chơi
Skills Engine giữ các kỹ năng người chơi đã sưu tầm và hiển thị chúng dưới dạng thẻ trong bảng **Kỹ năng**. Một kỹ năng có thể mở ra khả năng trong một cơ chế khác (cánh "cổng" bị động), trao cho người chơi một thẻ hành động mới cho trận chiến, và cộng số vào **hiệu ứng bộ sưu tập** — tổng của mọi kỹ năng đã sưu tầm.
Mod là một phần của Cthangover, nơi người chơi khởi đầu với đúng một kỹ năng, **Kẻ buôn nô lệ**.
## Bảng Kỹ năng
Mở bằng biểu tượng kỹ năng trên thanh công cụ.
![Bảng Kỹ năng trong Cthangover: thẻ Kẻ buôn nô lệ (Epic, Bị động, +10% khả năng chiêu mộ) trong lưới, mô tả của nó ở khu nghiên cứu thẻ bên phải, và tấm hiệu ứng bộ sưu tập ở góc ghi "+10% khả năng chiêu mộ".](assets/skills-panel.jpg)
- **Thẻ** lọc theo loại — **Bị động**, **Chủ động**, **Dành cho nhân vật** — còn hàng độ hiếm lọc theo độ hiếm, từ **Thường** đến **Huyền thoại**; ô tìm kiếm và danh sách sắp xếp thu hẹp lưới.
- **Màu viền và các hình thoi** cho biết độ hiếm của thẻ.
- **Nhấp vào một thẻ** để ngắm nó trong khu nghiên cứu thẻ: ảnh, huy hiệu độ hiếm và loại, mô tả, các hiệu ứng của nó và, với kỹ năng có tặng kèm, thẻ hành động mà nó cho.
- **Hiệu ứng bộ sưu tập** cộng dồn hiệu ứng của mọi kỹ năng đã sưu tầm: hai kỹ năng +10% và +5% chiêu mộ sẽ hiển thị +15%.
Thẻ Kẻ buôn nô lệ tạm chưa có ảnh: game nêu `characters/skills/slave_master` làm ảnh của nó, nhưng không mod nào kèm tệp đó, nên phần viền còn trống.
## Định nghĩa kỹ năng
Kỹ năng là tệp JSON kind `skill`, đặt ở bất kỳ đâu trong mod. Đây là Kẻ buôn nô lệ của Cthangover — hãy so với bảng phía trên:
```json
{
"Kind": "skill",
"Items": [
{
"Id": "slave_master",
"Name": "characters/skills/slave_master_name",
"Description": "characters/skills/slave_master",
"Image": "characters/skills/slave_master",
"Type": 1,
"Rare": 3,
"Effects": [
{ "Key": "characters/skills/effects/recruit", "Value": 10, "Percent": true }
]
}
]
}
```
- `Name`, `Description` — khóa dịch.
- `Image` — ảnh của thẻ.
- `Type` — `Active` (0), `Passive` (1) hoặc `ForCharacter` (2); tên hay số đều được. Kẻ buôn nô lệ là **bị động**.
- `Rare` — `Common` (0), `Uncommon`, `Rare`, `Epic` (3), `Legendary`. Kẻ buôn nô lệ là **epic**.
- `Effects` — các con số cho hiệu ứng bộ sưu tập: `Key` là khóa dịch của thứ được tăng cường, `Value` là lượng, `Percent` là có hiển thị kèm % hay không. Một khóa phải giữ nguyên đơn vị trong mọi kỹ năng, vì các giá trị được cộng lại.
- `GrantsAction` (tùy chọn) — id của một thẻ hành động (xem Characters Engine). Khi nhận kỹ năng, thẻ này cũng vào kho hành động của bảng Hành động nhân vật.
## Kỹ năng làm gì trong game
Bảng chỉ hiển thị kỹ năng. Kỹ năng đổi gì là do các mod kiểm tra nó quyết định:
- recruiting chỉ đề nghị **biến kẻ địch bị đánh bại thành nô lệ** khi người chơi có `slave_master`. Xác suất thành công là `RecruitmentChance` của chính kẻ địch; +10% trên thẻ chỉ hiện trong bảng, recruiting không cộng nó vào.
- Kỹ năng có `GrantsAction` trao thẻ hành động của nó, người chơi sau đó đặt vào ô của một nhân vật.
## Trao kỹ năng từ kịch bản
```scenario
action character.add_skill skill_id=slave_master
```
Trao một kỹ năng hai lần thì lần sau không có tác dụng, nên cảnh lặp lại không thể nhân đôi kỹ năng hay thẻ hành động của nó. Cthangover trao Kẻ buôn nô lệ khi ván mới bắt đầu.
## Khi có trục trặc
1. **Kỹ năng không xuất hiện.** `skill_id` phải khớp với `Id` của kỹ năng; id lạ được ghi vào log như một cảnh báo.
2. **Thẻ không có ảnh.** Không mod nào cung cấp ảnh mang tên ghi trong `Image`.
3. **Hiệu ứng bộ sưu tập hiện tổng lạ.** Hai kỹ năng dùng cùng khóa hiệu ứng nhưng `Percent` khác nhau.
+69
View File
@@ -0,0 +1,69 @@
# Skills Engine — 玩家的技能卡收藏
Skills Engine 保存玩家收集到的技能,并以卡片形式显示在**技能**面板中。一个技能可以开启其他机制中的可能性(被动"大门"),给玩家发放新的战斗行动卡,并把数值累加进**收藏效果**——所有已收集技能的总和。
它是 Cthangover 的一部分:游戏开局时玩家就带有一个技能——**奴隶贩子**。
## 技能面板
用工具栏上的技能图标打开。
![Cthangover 中的技能面板:网格中的"奴隶贩子"卡(史诗、被动、俘虏几率 +10%),右侧卡牌研读区显示它的描述,角落的收藏效果牌写着"+10% 俘虏几率"。](assets/skills-panel.jpg)
- **页签**按类型筛选——**被动**、**主动**、**角色专属**——稀有度一行按稀有度筛选,从**普通**到**传说**;搜索框和排序列表可以缩小网格范围。
- **边框颜色和菱形标记**表示卡片的稀有度。
- **点击一张卡**可在卡牌研读区查看它:图片、稀有度和类型徽章、描述、它的效果,以及(若技能授予行动卡)它给出的那张行动卡。
- **收藏效果**把所有已收集技能的效果加在一起:一个 +10%、一个 +5% 俘虏几率的技能会显示 +15%。
"奴隶贩子"这张卡暂时没有图片:游戏指定 `characters/skills/slave_master` 作为它的图片,但没有任何 mod 提供这个文件,所以边框一直空着。
## 技能的定义
技能是类型为 `skill` 的 JSON 文件,放在 mod 的任何位置。这是 Cthangover 的奴隶贩子——可与上面的面板对照:
```json
{
"Kind": "skill",
"Items": [
{
"Id": "slave_master",
"Name": "characters/skills/slave_master_name",
"Description": "characters/skills/slave_master",
"Image": "characters/skills/slave_master",
"Type": 1,
"Rare": 3,
"Effects": [
{ "Key": "characters/skills/effects/recruit", "Value": 10, "Percent": true }
]
}
]
}
```
- `Name`、`Description` — 翻译键。
- `Image` — 卡片图片。
- `Type` — `Active`(0)、`Passive`(1)或 `ForCharacter`(2);名称或数字都可以。奴隶贩子是**被动**。
- `Rare` — `Common`(0)、`Uncommon`、`Rare`、`Epic`(3)、`Legendary`。奴隶贩子是**史诗**。
- `Effects` — 供收藏效果累计的数值:`Key` 是所加成内容的翻译键,`Value` 是数值,`Percent` 决定是否按百分比显示。同一个键在所有技能里必须使用同一单位,因为这些数值要相加。
- `GrantsAction`(可选)— 一张行动卡的 id(见 Characters Engine)。获得技能的同时,这张卡也会进入"角色行动"面板的行动卡池。
## 技能在游戏里做什么
面板只负责展示技能。技能真正改变什么,由检查它的那些 mod 决定:
- 只有当玩家拥有 `slave_master` 时,recruiting 才会提供**奴役**被击败敌人的选项。成功率是敌人自身的 `RecruitmentChance`;卡片上的 +10% 只显示在面板里,recruiting 并不会把它加进去。
- 带 `GrantsAction` 的技能会给出它的行动卡,玩家随后可以把它放进角色的栏位。
## 从剧本授予技能
```scenario
action character.add_skill skill_id=slave_master
```
重复授予同一个技能不会有任何效果,所以重复播放的场景不会复制技能或它的行动卡。Cthangover 在新游戏开始时授予奴隶贩子。
## 出问题时
1. **技能没有出现。** `skill_id` 必须与技能的 `Id` 一致;未知 id 会作为警告写入日志。
2. **卡片没有图片。** 没有 mod 提供 `Image` 里所写名称的图片。
3. **收藏效果显示出奇怪的总数。** 两个技能用了相同的效果键但 `Percent` 值不同。
+1 -1
View File
@@ -1,2 +1,2 @@
mod_skills_base_name = Skills Engine
mod_skills_base_desc = Engine skills subsystem: card-based skill definitions, the grant service (skill + granted action pairing), the skills panel UI and the collection effect plate.
mod_skills_base_desc = The player's collection of skill cards: skills that open possibilities in other mechanics, grant battle action cards and add up into the collection effect.
+1 -1
View File
@@ -1,2 +1,2 @@
mod_skills_base_name = Motor de habilidades
mod_skills_base_desc = Subsistema de habilidades del motor: habilidades definidas como cartas, el servicio de concesión (habilidad + acción concedida), la interfaz del panel de habilidades y la placa de efectos de la colección.
mod_skills_base_desc = La colección de cartas de habilidad del jugador: habilidades que abren posibilidades en otras mecánicas, conceden cartas de acción de combate y se suman en el efecto de colección.
+1 -1
View File
@@ -1,2 +1,2 @@
mod_skills_base_name = スキルエンジン
mod_skills_base_desc = エンジンのスキルサブシステム:カード形式のスキル定義、付与サービス(スキルと付与されるアクションの組み合わせ)、スキルパネルの UI、コレクション効果のプレート。
mod_skills_base_desc = プレイヤーのスキルカードコレクション: 他のメカニクスの可能性を開き、戦闘用アクションカードを付与し、コレクション効果に積み上がるスキル。
+1 -1
View File
@@ -1,2 +1,2 @@
mod_skills_base_name = 스킬 엔진
mod_skills_base_desc = 엔진 스킬 하위 시스템: 카드 기반 스킬 정의, 부여 서비스(스킬과 부여되는 액션의 짝), 스킬 패널 UI, 컬렉션 효과 판.
mod_skills_base_desc = 플레이어의 스킬 카드 컬렉션: 다른 메커니즘의 가능성을 열어 주고, 전투 액션 카드를 부여하며, 컬렉션 효과에 합산되는 스킬.
+1 -1
View File
@@ -1,2 +1,2 @@
mod_skills_base_name = Движок умений
mod_skills_base_desc = Подсистема умений движка: карточные определения умений, сервис выдачи (умение + связанное действие), панель умений и плашка эффекта коллекции.
mod_skills_base_desc = Коллекция карточек умений игрока: умения открывают новые возможности в других механиках, выдают боевые карточки действий и складываются в эффект коллекции.
+1 -1
View File
@@ -1,2 +1,2 @@
mod_skills_base_name = Engine kỹ năng
mod_skills_base_desc = Hệ thống con kỹ năng của engine: kỹ năng định nghĩa dạng thẻ, dịch vụ cấp (ghép kỹ năng với hành động được cấp), giao diện bảng kỹ năng và tấm hiệu ứng bộ sưu tập.
mod_skills_base_desc = Bộ sưu tập thẻ kỹ năng của người chơi: kỹ năng mở ra khả năng trong các cơ chế khác, cấp thẻ hành động chiến đấu và cộng dồn thành hiệu ứng bộ sưu tập.
+1 -1
View File
@@ -1,2 +1,2 @@
mod_skills_base_name = 技能引擎
mod_skills_base_desc = 引擎技能子系统:基于卡牌的技能定义、授予服务(技能与授予动作配对)、技能面板界面以及收藏效果牌。
mod_skills_base_desc = 玩家的技能卡收藏:技能可以开启其他机制中的可能性、授予战斗行动卡,并汇入收藏效果。
+1 -1
View File
@@ -3,7 +3,7 @@
"name": "Skills Engine",
"version": "1.0.0",
"author": "ct",
"description": "Engine skills subsystem: card-based skill definitions, the grant service (skill + granted action pairing), the skills panel UI and the collection effect plate. Replaces the former Core/Skills implementations and Core/Factories/Impls/SkillFactory.",
"description": "The player's collection of skill cards: skills that open possibilities in other mechanics, grant battle action cards and add up into the collection effect.",
"category": "engine, library",
"sources": [
"src/**/*.cs"
+3
View File
@@ -664,6 +664,9 @@ namespace Cthangover.Mods.Skills
foreach (var total in totals)
{
var cell = UiKit.Row(10);
// The grid sizes a column by its minimum width; without expanding,
// the clipped key label shrinks to zero and only the number shows.
cell.SizeFlagsHorizontal = SizeFlags.ExpandFill;
var value = UiKit.Label(total.FormatValue(), UiTokens.FontBodyLarge, UiTokens.AccentBright);
value.CustomMinimumSize = new Vector2(54, 0);
value.HorizontalAlignment = HorizontalAlignment.Right;