Compare commits
2
Commits
f834d1e914
...
73e6d787b3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73e6d787b3 | ||
|
|
b3e4077beb |
No files matched your search
@@ -12,6 +12,7 @@ obj/
|
||||
gen/
|
||||
obj/
|
||||
bin/
|
||||
art_sources/
|
||||
|
||||
*.tres~
|
||||
*.tscn~
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
+83
@@ -0,0 +1,83 @@
|
||||
# Equipment — gear that changes a character's stats
|
||||
|
||||
Equipment lets characters wear things: a weapon, armour, a charm — or an outfit and jewellery in a visual novel. While an item is worn, its bonuses count in the character's stats, so the character sheet, battles, stat checks and conditions all follow at once. Taking it off returns it to the bag.
|
||||
|
||||
It needs Stats Engine and Items Base. The slots and the gear of RPG Plus come from the Classic RPG Rules pack; another game describes its own.
|
||||
|
||||
## Putting something on
|
||||
|
||||
Open the bag, pick the item and press **Equip**, then choose who wears it:
|
||||
|
||||

|
||||
|
||||
The item leaves the bag and appears in the **Equipment** block of the character sheet. Before and after:
|
||||
|
||||

|
||||
|
||||
Armour went from 4 to 6 — the armour's `def` +2. Health went from 42 to 48: the base 38 plus the armour's `hp` +6 is 44, and the warrior's 10% health bonus makes it 48.
|
||||
|
||||
- **Take off** on the sheet puts the item back into the bag.
|
||||
- Putting something into a taken slot returns the old item to the bag.
|
||||
- Only party members can be chosen.
|
||||
|
||||
## Making an item wearable
|
||||
|
||||
Two keys in the item's own JSON make it gear; the items mod does not need to know about them. The leather armour from Classic RPG Rules:
|
||||
|
||||
```json
|
||||
{
|
||||
"Id": "classic/leather_armor",
|
||||
"Name": "classic/item/leather_armor/name",
|
||||
"ItemType": "TargetUsed",
|
||||
"ItemAction": "action/equip",
|
||||
"verb": "equipment/verb_equip",
|
||||
"Equip": "armor",
|
||||
"Traits": [ { "Stat": "def", "Add": 2 }, { "Stat": "hp", "Add": 6 } ]
|
||||
}
|
||||
```
|
||||
|
||||
- `Equip` — the item's equip type; it decides the slot.
|
||||
- `Traits` — what it gives while worn, in the trait format of Stats Engine (`Add`, `Percent` or `Formula`).
|
||||
- `Archetypes` (optional) — who may wear it, for example `["classic/mage"]` for the oak staff.
|
||||
- `ItemType: TargetUsed` with `ItemAction: action/equip` gives it the Equip button and the target list; `verb` names the button.
|
||||
|
||||
## Slots
|
||||
|
||||
Slots are entities of kind `equip_slot`. Each lists the equip types it accepts:
|
||||
|
||||
```json
|
||||
{
|
||||
"Kind": "equip_slot",
|
||||
"Items": [
|
||||
{ "Id": "weapon", "Name": "classic/slot/weapon", "Order": 1, "Accepts": ["sword", "staff", "dagger"] },
|
||||
{ "Id": "body", "Name": "classic/slot/body", "Order": 2, "Accepts": ["armor", "robe"] },
|
||||
{ "Id": "accessory", "Name": "classic/slot/accessory", "Order": 3, "Accepts": ["charm", "ring"] }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
A slot without `Accepts` takes items whose `Equip` is the slot's own id.
|
||||
|
||||
## Items that raise stats for good
|
||||
|
||||
`"ItemAction": "action/stat_up"` with a `StatUp` key — for example `{"str": 1}` — permanently changes the stats of the party member it is used on, like a tonic or a book. The item is spent.
|
||||
|
||||
## In scenarios
|
||||
|
||||
```scenario
|
||||
action equip.put who=rpg_hero item=classic/wood_sword give=1
|
||||
action equip.remove who=rpg_hero slot=weapon
|
||||
when "equipped(rpg_hero, 'classic/wood_sword')" -> :armed
|
||||
```
|
||||
|
||||
- `equip.put` puts an item on from the bag; with `give=1` the item is granted instead and need not be in the bag. RPG Plus gives each class its starting weapon this way. `slot=` picks a slot when several would fit.
|
||||
- `equip.remove` takes off what is worn in a slot, back into the bag.
|
||||
- `equipped(who, 'item')` is true while the item is worn.
|
||||
|
||||
What is worn is saved with the game.
|
||||
|
||||
## If something goes wrong
|
||||
|
||||
1. **No one to choose after Equip.** The target list shows party members only; in RPG Plus the hero joins the party on entering the village, after the prologue.
|
||||
2. **The item cannot be put on.** No slot accepts its `Equip` type, or its `Archetypes` do not include the character's class.
|
||||
3. **The sheet does not change.** The item's `Traits` name stats the game does not define.
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
# Equipment — equipo que cambia las estadísticas del personaje
|
||||
|
||||
Equipment permite a los personajes llevar cosas: un arma, una armadura, un amuleto — o un atuendo y joyas en una novela visual. Mientras un objeto está equipado, sus bonos cuentan en las estadísticas del personaje, así que la hoja de personaje, los combates, las pruebas de estadísticas y las condiciones siguen al instante. Al quitarlo vuelve a la bolsa.
|
||||
|
||||
Necesita Stats Engine e Items Base. Las ranuras y el equipo de RPG Plus vienen del paquete Classic RPG Rules; otro juego describe las suyas.
|
||||
|
||||
## Cómo ponerse algo
|
||||
|
||||
Abre la bolsa, elige el objeto y pulsa **Equipar**, después escoge quién lo lleva:
|
||||
|
||||

|
||||
|
||||
El objeto sale de la bolsa y aparece en el bloque **Equipo** de la hoja de personaje. Antes y después:
|
||||
|
||||

|
||||
|
||||
La armadura pasó de 4 a 6 — el `def` de la armadura, +2. La salud pasó de 42 a 48: la base 38 más el `hp` de la armadura, +6, da 44, y el bono de salud del 10% del guerrero lo deja en 48.
|
||||
|
||||
- **Quitar** en la hoja devuelve el objeto a la bolsa.
|
||||
- Poner algo en una ranura ocupada devuelve el objeto anterior a la bolsa.
|
||||
- Solo se puede elegir a miembros del grupo.
|
||||
|
||||
## Convertir un objeto en equipo
|
||||
|
||||
Dos claves en el JSON del propio objeto lo convierten en equipo; el mod de objetos no necesita saberlo. La armadura de cuero de Classic RPG Rules:
|
||||
|
||||
```json
|
||||
{
|
||||
"Id": "classic/leather_armor",
|
||||
"Name": "classic/item/leather_armor/name",
|
||||
"ItemType": "TargetUsed",
|
||||
"ItemAction": "action/equip",
|
||||
"verb": "equipment/verb_equip",
|
||||
"Equip": "armor",
|
||||
"Traits": [ { "Stat": "def", "Add": 2 }, { "Stat": "hp", "Add": 6 } ]
|
||||
}
|
||||
```
|
||||
|
||||
- `Equip` — el tipo de equipo del objeto; decide la ranura.
|
||||
- `Traits` — qué da mientras se lleva, en el formato de rasgos de Stats Engine (`Add`, `Percent` o `Formula`).
|
||||
- `Archetypes` (opcional) — quién puede llevarlo, por ejemplo `["classic/mage"]` para el báculo de roble.
|
||||
- `ItemType: TargetUsed` con `ItemAction: action/equip` le dan el botón de equipar y la lista de objetivos; `verb` nombra el botón.
|
||||
|
||||
## Las ranuras
|
||||
|
||||
Las ranuras son entidades de tipo `equip_slot`. Cada una enumera los tipos de equipo que acepta:
|
||||
|
||||
```json
|
||||
{
|
||||
"Kind": "equip_slot",
|
||||
"Items": [
|
||||
{ "Id": "weapon", "Name": "classic/slot/weapon", "Order": 1, "Accepts": ["sword", "staff", "dagger"] },
|
||||
{ "Id": "body", "Name": "classic/slot/body", "Order": 2, "Accepts": ["armor", "robe"] },
|
||||
{ "Id": "accessory", "Name": "classic/slot/accessory", "Order": 3, "Accepts": ["charm", "ring"] }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Una ranura sin `Accepts` toma los objetos cuyo `Equip` es el propio id de la ranura.
|
||||
|
||||
## Objetos que suben estadísticas para siempre
|
||||
|
||||
`\"ItemAction\": \"action/stat_up\"` con una clave `StatUp` — por ejemplo `{"str": 1}` — cambia para siempre las estadísticas del miembro del grupo en que se usa, como una poción o un libro. El objeto se consume.
|
||||
|
||||
## En los escenarios
|
||||
|
||||
```scenario
|
||||
action equip.put who=rpg_hero item=classic/wood_sword give=1
|
||||
action equip.remove who=rpg_hero slot=weapon
|
||||
when "equipped(rpg_hero, 'classic/wood_sword')" -> :armed
|
||||
```
|
||||
|
||||
- `equip.put` equipa un objeto desde la bolsa; con `give=1` el objeto se concede sin más y no hace falta que esté en la bolsa. RPG Plus da así a cada clase su arma inicial. `slot=` elige una ranura cuando varias servirían.
|
||||
- `equip.remove` quita lo equipado en una ranura, de vuelta a la bolsa.
|
||||
- `equipped(who, 'item')` es verdad mientras el objeto esté equipado.
|
||||
|
||||
Lo equipado se guarda con la partida.
|
||||
|
||||
## Si algo sale mal
|
||||
|
||||
1. **Tras equipar no hay a quién elegir.** La lista de objetivos muestra solo miembros del grupo; en RPG Plus el héroe se une al grupo al entrar en la aldea, después del prólogo.
|
||||
2. **El objeto no se puede poner.** Ninguna ranura acepta su tipo `Equip`, o sus `Archetypes` no incluyen la clase del personaje.
|
||||
3. **La hoja no cambia.** Los `Traits` del objeto nombran estadísticas que el juego no define.
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
# Equipment —— キャラクターのステータスを変える装備
|
||||
|
||||
Equipment でキャラクターは物を身に着けられます。武器、防具、お守り——ビジュアルノベルなら衣装や宝石も。アイテムを装備している間、そのボーナスはキャラクターのステータスに反映され、キャラクターシート、バトル、ステータス判定、条件がすべてすぐに追随します。外すとかばんに戻ります。
|
||||
|
||||
Stats Engine と Items Base が必要です。RPG Plus のスロットと装備は Classic RPG Rules パックから来ており、別のゲームは独自のものを定義します。
|
||||
|
||||
## 物を装備する
|
||||
|
||||
かばんを開いてアイテムを選び、**Equip** を押してから、誰が装備するかを選びます:
|
||||
|
||||

|
||||
|
||||
アイテムはかばんから出て、キャラクターシートの**装備**ブロックに現れます。装備の前と後:
|
||||
|
||||

|
||||
|
||||
防御は 4 から 6 へ——防具の `def` +2 です。体力は 42 から 48 へ:基礎 38 に防具の `hp` +6 を足すと 44、戦士の 10% 体力ボーナスで 48 になります。
|
||||
|
||||
- シートの **Take off** でアイテムはかばんに戻ります。
|
||||
- 埋まっているスロットに別の物を装備すると、前のアイテムはかばんへ戻ります。
|
||||
- 選べるのはパーティメンバーだけです。
|
||||
|
||||
## アイテムを装備可能にする
|
||||
|
||||
アイテム自身の JSON にある二つのキーで装備品になります。アイテム側のModはこれを知る必要がありません。Classic RPG Rules の革の防具:
|
||||
|
||||
```json
|
||||
{
|
||||
"Id": "classic/leather_armor",
|
||||
"Name": "classic/item/leather_armor/name",
|
||||
"ItemType": "TargetUsed",
|
||||
"ItemAction": "action/equip",
|
||||
"verb": "equipment/verb_equip",
|
||||
"Equip": "armor",
|
||||
"Traits": [ { "Stat": "def", "Add": 2 }, { "Stat": "hp", "Add": 6 } ]
|
||||
}
|
||||
```
|
||||
|
||||
- `Equip`——アイテムの装備タイプ。スロットを決めます。
|
||||
- `Traits`——装備中に何を与えるか。Stats Engine の特性形式(`Add`、`Percent`、`Formula`)で書きます。
|
||||
- `Archetypes`(省略可)——誰が装備できるか。例:樫の杖なら `["classic/mage"]`。
|
||||
- `ItemType: TargetUsed` と `ItemAction: action/equip` の組み合わせで、Equip ボタンと対象リストが付きます。`verb` がボタンの文字を決めます。
|
||||
|
||||
## スロット
|
||||
|
||||
スロットは `equip_slot` 種別のエンティティです。それぞれ、受け付ける装備タイプを列挙します:
|
||||
|
||||
```json
|
||||
{
|
||||
"Kind": "equip_slot",
|
||||
"Items": [
|
||||
{ "Id": "weapon", "Name": "classic/slot/weapon", "Order": 1, "Accepts": ["sword", "staff", "dagger"] },
|
||||
{ "Id": "body", "Name": "classic/slot/body", "Order": 2, "Accepts": ["armor", "robe"] },
|
||||
{ "Id": "accessory", "Name": "classic/slot/accessory", "Order": 3, "Accepts": ["charm", "ring"] }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
`Accepts` のないスロットは、`Equip` がそのスロット自身の id であるアイテムを受け付けます。
|
||||
|
||||
## ステータスを永続的に上げるアイテム
|
||||
|
||||
`\"ItemAction\": \"action/stat_up\"` に `StatUp` キー——たとえば `{"str": 1}`——を添えると、使ったパーティメンバーのステータスが永続的に変わります。薬や本のようなものです。アイテムは消費されます。
|
||||
|
||||
## シナリオの中で
|
||||
|
||||
```scenario
|
||||
action equip.put who=rpg_hero item=classic/wood_sword give=1
|
||||
action equip.remove who=rpg_hero slot=weapon
|
||||
when "equipped(rpg_hero, 'classic/wood_sword')" -> :armed
|
||||
```
|
||||
|
||||
- `equip.put` はかばんからアイテムを装備します。`give=1` を付けると代わりにアイテムを付与し、かばんになくて構いません。RPG Plus はこのやり方で各職業に初期武器を与えています。複数のスロットが候補になるなら `slot=` で指定します。
|
||||
- `equip.remove` はスロットに装備中の物を外して、かばんへ戻します。
|
||||
- アイテムを装備している間、`equipped(who, 'item')` は真になります。
|
||||
|
||||
装備の状態はセーブに含まれます。
|
||||
|
||||
## うまくいかないときは
|
||||
|
||||
1. **Equip の後に選ぶ相手がいない。** 対象リストにはパーティメンバーしか出ません。RPG Plus では、英雄はプロローグのあと村に入った時点でパーティに加わります。
|
||||
2. **アイテムを装備できない。** その `Equip` タイプを受け付けるスロットがないか、`Archetypes` にキャラクターの職業が含まれていません。
|
||||
3. **シートが変わらない。** アイテムの `Traits` が、ゲームが定義していないステータスを挙げています。
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
# Equipment — 캐릭터의 능력치를 바꾸는 장비
|
||||
|
||||
Equipment는 캐릭터가 물건을 착용하게 해 줍니다. 무기, 방어구, 부적 — 비주얼 노벨이라면 의상과 장신구도요. 아이템을 착용하는 동안 그 보너스는 캐릭터 능력치에 들어가므로, 캐릭터 시트, 전투, 능력치 판정, 조건이 모두 즉시 따라 바뀝니다. 벗으면 가방으로 돌아갑니다.
|
||||
|
||||
Stats Engine과 Items Base가 필요합니다. RPG Plus의 슬롯과 장비는 Classic RPG Rules 팩에서 오며, 다른 게임은 자기만의 것을 정의합니다.
|
||||
|
||||
## 물건 착용하기
|
||||
|
||||
가방을 열고 아이템을 고른 뒤 **Equip**을 누르고, 누가 착용할지 고르세요:
|
||||
|
||||

|
||||
|
||||
아이템은 가방을 떠나 캐릭터 시트의 **장비** 블록에 나타납니다. 착용 전과 후:
|
||||
|
||||

|
||||
|
||||
방어는 4에서 6으로 올랐습니다 — 방어구의 `def` +2죠. 체력은 42에서 48로: 기본 38에 방어구의 `hp` +6을 더해 44, 전사의 10% 체력 보너스가 48로 만듭니다.
|
||||
|
||||
- 시트의 **Take off**는 아이템을 가방으로 되돌립니다.
|
||||
- 이미 찬 슬롯에 다른 것을 착용하면 원래 아이템이 가방으로 돌아갑니다.
|
||||
- 고를 수 있는 것은 파티원뿐입니다.
|
||||
|
||||
## 아이템을 착용 가능하게 만들기
|
||||
|
||||
아이템 자신의 JSON에 있는 키 두 개만으로 장비가 됩니다. 아이템 모드는 이를 알 필요가 없죠. Classic RPG Rules의 가죽 방어구:
|
||||
|
||||
```json
|
||||
{
|
||||
"Id": "classic/leather_armor",
|
||||
"Name": "classic/item/leather_armor/name",
|
||||
"ItemType": "TargetUsed",
|
||||
"ItemAction": "action/equip",
|
||||
"verb": "equipment/verb_equip",
|
||||
"Equip": "armor",
|
||||
"Traits": [ { "Stat": "def", "Add": 2 }, { "Stat": "hp", "Add": 6 } ]
|
||||
}
|
||||
```
|
||||
|
||||
- `Equip` — 아이템의 장비 종류. 슬롯을 결정합니다.
|
||||
- `Traits` — 착용 중 무엇을 주는지. Stats Engine의 특성 형식(`Add`, `Percent`, `Formula`)으로 씁니다.
|
||||
- `Archetypes`(선택) — 누가 착용할 수 있는지. 예: 오크 지팡이의 `["classic/mage"]`.
|
||||
- `ItemType: TargetUsed`와 `ItemAction: action/equip` 조합이 장착 버튼과 대상 목록을 붙여 줍니다. `verb`가 버튼 글자를 정합니다.
|
||||
|
||||
## 슬롯
|
||||
|
||||
슬롯은 `equip_slot` 종류의 엔티티입니다. 각 슬롯은 받아들이는 장비 종류를 나열합니다:
|
||||
|
||||
```json
|
||||
{
|
||||
"Kind": "equip_slot",
|
||||
"Items": [
|
||||
{ "Id": "weapon", "Name": "classic/slot/weapon", "Order": 1, "Accepts": ["sword", "staff", "dagger"] },
|
||||
{ "Id": "body", "Name": "classic/slot/body", "Order": 2, "Accepts": ["armor", "robe"] },
|
||||
{ "Id": "accessory", "Name": "classic/slot/accessory", "Order": 3, "Accepts": ["charm", "ring"] }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
`Accepts`가 없는 슬롯은 `Equip`이 자기 id와 같은 아이템을 받습니다.
|
||||
|
||||
## 능력치를 영구히 올리는 아이템
|
||||
|
||||
`\"ItemAction\": \"action/stat_up\"`에 `StatUp` 키 — 예컨대 `{"str": 1}` — 를 두면 사용된 파티원의 능력치가 영구히 바뀝니다. 강장제나 책 같은 셈이죠. 아이템은 소모됩니다.
|
||||
|
||||
## 시나리오에서
|
||||
|
||||
```scenario
|
||||
action equip.put who=rpg_hero item=classic/wood_sword give=1
|
||||
action equip.remove who=rpg_hero slot=weapon
|
||||
when "equipped(rpg_hero, 'classic/wood_sword')" -> :armed
|
||||
```
|
||||
|
||||
- `equip.put`은 가방에서 아이템을 착용합니다. `give=1`을 붙이면 대신 아이템을 지급하므로 가방에 없어도 됩니다. RPG Plus는 이 방식으로 직업마다 시작 무기를 줍니다. 여러 슬롯이 맞을 수 있으면 `slot=`으로 고릅니다.
|
||||
- `equip.remove`는 슬롯에 착용된 것을 벗겨 가방으로 돌려보냅니다.
|
||||
- 아이템이 착용되어 있는 동안 `equipped(who, 'item')`은 참입니다.
|
||||
|
||||
착용 상태는 게임에 함께 저장됩니다.
|
||||
|
||||
## 문제가 생겼을 때
|
||||
|
||||
1. **장착 후 고를 사람이 없음.** 대상 목록에는 파티원만 나옵니다. RPG Plus에서 영웅은 프롤로그 뒤 마을에 들어설 때 파티에 합류합니다.
|
||||
2. **아이템을 착용할 수 없음.** 그 `Equip` 종류를 받는 슬롯이 없거나, `Archetypes`에 캐릭터의 직업이 없습니다.
|
||||
3. **시트가 바뀌지 않음.** 아이템의 `Traits`가 게임이 정의하지 않는 능력치를 가리킵니다.
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
# Equipment — снаряжение, которое меняет характеристики персонажа
|
||||
|
||||
Equipment позволяет персонажам носить вещи: оружие, броню, талисман — а в визуальной новелле наряд и украшения. Пока предмет надет, его бонусы входят в характеристики персонажа, поэтому лист персонажа, бои, проверки характеристик и условия меняются сразу. Снятая вещь возвращается в сумку.
|
||||
|
||||
Моду нужны Stats Engine и Items Base. Слоты и снаряжение RPG Plus берутся из набора Classic RPG Rules; другая игра опишет свои.
|
||||
|
||||
## Как что-то надеть
|
||||
|
||||
Откройте сумку, выберите предмет и нажмите **Equip**, затем укажите, кто его наденет:
|
||||
|
||||

|
||||
|
||||
Предмет уходит из сумки и появляется в блоке **Equipment** листа персонажа. До и после:
|
||||
|
||||

|
||||
|
||||
Броня выросла с 4 до 6 — это `def` брони +2. Здоровье выросло с 42 до 48: база 38 плюс `hp` брони +6 даёт 44, а 10% бонус воина к здоровью доводит до 48.
|
||||
|
||||
- **Take off** на листе возвращает предмет в сумку.
|
||||
- Если надеть вещь в занятый слот, прежний предмет вернётся в сумку.
|
||||
- Выбирать можно только членов отряда.
|
||||
|
||||
## Как сделать предмет надеваемым
|
||||
|
||||
Два ключа в собственном JSON предмета делают его снаряжением; моду предметов знать о них не нужно. Кожаная броня из Classic RPG Rules:
|
||||
|
||||
```json
|
||||
{
|
||||
"Id": "classic/leather_armor",
|
||||
"Name": "classic/item/leather_armor/name",
|
||||
"ItemType": "TargetUsed",
|
||||
"ItemAction": "action/equip",
|
||||
"verb": "equipment/verb_equip",
|
||||
"Equip": "armor",
|
||||
"Traits": [ { "Stat": "def", "Add": 2 }, { "Stat": "hp", "Add": 6 } ]
|
||||
}
|
||||
```
|
||||
|
||||
- `Equip` — тип снаряжения предмета; он и выбирает слот.
|
||||
- `Traits` — что предмет даёт, пока надет, в формате черт Stats Engine (`Add`, `Percent` или `Formula`).
|
||||
- `Archetypes` (необязательно) — кто может это надеть, например `["classic/mage"]` у дубового посоха.
|
||||
- `ItemType: TargetUsed` вместе с `ItemAction: action/equip` дают предмету кнопку Equip и список целей; `verb` задаёт надпись на кнопке.
|
||||
|
||||
## Слоты
|
||||
|
||||
Слоты — это сущности вида `equip_slot`. Каждый перечисляет принимаемые типы снаряжения:
|
||||
|
||||
```json
|
||||
{
|
||||
"Kind": "equip_slot",
|
||||
"Items": [
|
||||
{ "Id": "weapon", "Name": "classic/slot/weapon", "Order": 1, "Accepts": ["sword", "staff", "dagger"] },
|
||||
{ "Id": "body", "Name": "classic/slot/body", "Order": 2, "Accepts": ["armor", "robe"] },
|
||||
{ "Id": "accessory", "Name": "classic/slot/accessory", "Order": 3, "Accepts": ["charm", "ring"] }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Слот без `Accepts` принимает предметы, чей `Equip` равен id самого слота.
|
||||
|
||||
## Предметы, навсегда повышающие характеристики
|
||||
|
||||
`\"ItemAction\": \"action/stat_up\"` с ключом `StatUp` — например `{"str": 1}` — навсегда меняет характеристики члена отряда, на котором использован предмет, как тоник или книга. Предмет расходуется.
|
||||
|
||||
## В сценариях
|
||||
|
||||
```scenario
|
||||
action equip.put who=rpg_hero item=classic/wood_sword give=1
|
||||
action equip.remove who=rpg_hero slot=weapon
|
||||
when "equipped(rpg_hero, 'classic/wood_sword')" -> :armed
|
||||
```
|
||||
|
||||
- `equip.put` надевает предмет из сумки; с `give=1` предмет вместо этого выдаётся и может в сумке отсутствовать. Так RPG Plus выдаёт каждому классу стартовое оружие. `slot=` выбирает слот, если подходят несколько.
|
||||
- `equip.remove` снимает надетое в слоте — обратно в сумку.
|
||||
- `equipped(who, 'item')` истинно, пока предмет надет.
|
||||
|
||||
Надетое сохраняется вместе с игрой.
|
||||
|
||||
## Если что-то пошло не так
|
||||
|
||||
1. **После Equip некого выбирать.** В списке целей только члены отряда; в RPG Plus герой вступает в отряд при входе в деревню, после пролога.
|
||||
2. **Предмет не надевается.** Ни один слот не принимает его тип `Equip`, либо `Archetypes` не включает класс персонажа.
|
||||
3. **Лист не меняется.** В `Traits` предмета названы характеристики, которых игра не определяет.
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
# Equipment — trang bị làm thay đổi chỉ số nhân vật
|
||||
|
||||
Equipment cho phép nhân vật mang theo đồ: vũ khí, giáp, bùa hộ thân — hay trong tiểu thuyết tương tác là trang phục và trang sức. Khi vật phẩm đang được mặc, phần cộng của nó được tính vào chỉ số nhân vật, nên bảng chỉ số, trận chiến, phép kiểm chỉ số và các điều kiện đều đổi theo ngay. Tháo ra thì món đồ trở lại túi.
|
||||
|
||||
Mod cần Stats Engine và Items Base. Các ô và trang bị của RPG Plus đến từ gói Classic RPG Rules; game khác sẽ tự mô tả phần của mình.
|
||||
|
||||
## Mặc đồ
|
||||
|
||||
Mở túi, chọn món đồ và bấm **Trang bị**, rồi chọn ai sẽ mặc nó:
|
||||
|
||||

|
||||
|
||||
Món đồ rời khỏi túi và xuất hiện trong khối **Trang bị** của bảng chỉ số. Trước và sau:
|
||||
|
||||

|
||||
|
||||
Giáp tăng từ 4 lên 6 — đó là `def` +2 của món giáp. Máu tăng từ 42 lên 48: nền 38 cộng `hp` +6 của món giáp là 44, và phần thưởng 10% máu của chiến binh đưa lên 48.
|
||||
|
||||
- **Tháo** trên bảng chỉ số đưa món đồ trở lại túi.
|
||||
- Mặc món mới vào ô đã có đồ thì món cũ quay về túi.
|
||||
- Chỉ có thể chọn thành viên trong đội.
|
||||
|
||||
## Biến vật phẩm thành trang bị
|
||||
|
||||
Hai khóa trong JSON của chính vật phẩm biến nó thành trang bị; mod vật phẩm không cần biết điều đó. Món giáp da từ Classic RPG Rules:
|
||||
|
||||
```json
|
||||
{
|
||||
"Id": "classic/leather_armor",
|
||||
"Name": "classic/item/leather_armor/name",
|
||||
"ItemType": "TargetUsed",
|
||||
"ItemAction": "action/equip",
|
||||
"verb": "equipment/verb_equip",
|
||||
"Equip": "armor",
|
||||
"Traits": [ { "Stat": "def", "Add": 2 }, { "Stat": "hp", "Add": 6 } ]
|
||||
}
|
||||
```
|
||||
|
||||
- `Equip` — loại trang bị của vật phẩm; nó quyết định ô trang bị.
|
||||
- `Traits` — tác dụng khi đang mặc, viết theo định dạng đặc tính của Stats Engine (`Add`, `Percent` hoặc `Formula`).
|
||||
- `Archetypes` (tùy chọn) — ai được mặc nó, ví dụ `["classic/mage"]` cho trục sồi.
|
||||
- `ItemType: TargetUsed` đi cùng `ItemAction: action/equip` sẽ tạo nút Trang bị và danh sách mục tiêu cho món đồ; `verb` đặt chữ trên nút.
|
||||
|
||||
## Các ô trang bị
|
||||
|
||||
Các ô là thực thể loại `equip_slot`. Mỗi ô liệt kê những loại trang bị mà nó nhận:
|
||||
|
||||
```json
|
||||
{
|
||||
"Kind": "equip_slot",
|
||||
"Items": [
|
||||
{ "Id": "weapon", "Name": "classic/slot/weapon", "Order": 1, "Accepts": ["sword", "staff", "dagger"] },
|
||||
{ "Id": "body", "Name": "classic/slot/body", "Order": 2, "Accepts": ["armor", "robe"] },
|
||||
{ "Id": "accessory", "Name": "classic/slot/accessory", "Order": 3, "Accepts": ["charm", "ring"] }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Ô không có `Accepts` nhận các vật phẩm mà `Equip` trùng với id của chính ô đó.
|
||||
|
||||
## Vật phẩm tăng chỉ số vĩnh viễn
|
||||
|
||||
`\"ItemAction\": \"action/stat_up\"` kèm khóa `StatUp` — ví dụ `{"str": 1}` — sẽ thay đổi vĩnh viễn chỉ số của thành viên đội bị dùng lên, giống một lọ thuốc hay một cuốn sách. Món vật phẩm bị tiêu hao.
|
||||
|
||||
## Trong kịch bản
|
||||
|
||||
```scenario
|
||||
action equip.put who=rpg_hero item=classic/wood_sword give=1
|
||||
action equip.remove who=rpg_hero slot=weapon
|
||||
when "equipped(rpg_hero, 'classic/wood_sword')" -> :armed
|
||||
```
|
||||
|
||||
- `equip.put` mặc một vật phẩm từ túi; có `give=1` thì vật phẩm được cấp thẳng và không cần nằm trong túi. RPG Plus trao vũ khí khởi đầu cho từng lớp theo cách này. Khi nhiều ô đều vừa, dùng `slot=` để chỉ định.
|
||||
- `equip.remove` tháo món đang mặc trong một ô, trả về túi.
|
||||
- Khi món đồ còn được mặc, `equipped(who, 'item')` đúng.
|
||||
|
||||
Trang bị đang mặc được lưu cùng game.
|
||||
|
||||
## Khi có sự cố
|
||||
|
||||
1. **Bấm Trang bị xong không có ai để chọn.** Danh sách mục tiêu chỉ có thành viên đội; trong RPG Plus, anh hùng gia nhập đội khi bước vào làng, sau phần mở đầu.
|
||||
2. **Không mặc được món đồ.** Không ô nào nhận loại `Equip` của nó, hoặc `Archetypes` của nó không gồm lớp của nhân vật.
|
||||
3. **Bảng chỉ số không đổi.** `Traits` của món đồ nêu những chỉ số mà game không định nghĩa.
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
# Equipment —— 改变角色属性的装备
|
||||
|
||||
Equipment 让角色可以穿戴物品:武器、护甲、护身符——在视觉小说里也可以是服装和首饰。物品穿在身上时,其加成会计入角色属性,因此角色面板、战斗、属性检定和条件都会随之即时变化。脱下后物品回到背包。
|
||||
|
||||
它依赖 Stats Engine 和 Items Base。RPG Plus 的栏位和装备来自 Classic RPG Rules 包;其他游戏则自行描述自己的。
|
||||
|
||||
## 穿戴物品
|
||||
|
||||
打开背包,选中物品并点击**Equip**,然后选择由谁穿戴:
|
||||
|
||||

|
||||
|
||||
物品离开背包,出现在角色面板的**装备**区块中。前后对比:
|
||||
|
||||

|
||||
|
||||
护甲从 4 涨到 6——这是护甲的 `def` +2。生命从 42 涨到 48:基础 38 加上护甲的 `hp` +6 是 44,再加上战士 10% 的生命加成,正好 48。
|
||||
|
||||
- 面板上的 **Take off** 会把物品放回背包。
|
||||
- 往已占用的栏位里穿新物品时,旧物品会回到背包。
|
||||
- 只能选择队伍成员。
|
||||
|
||||
## 让物品可以穿戴
|
||||
|
||||
物品自身 JSON 里的两个键就能让它成为装备;物品模组无需知道这件事。Classic RPG Rules 的皮甲:
|
||||
|
||||
```json
|
||||
{
|
||||
"Id": "classic/leather_armor",
|
||||
"Name": "classic/item/leather_armor/name",
|
||||
"ItemType": "TargetUsed",
|
||||
"ItemAction": "action/equip",
|
||||
"verb": "equipment/verb_equip",
|
||||
"Equip": "armor",
|
||||
"Traits": [ { "Stat": "def", "Add": 2 }, { "Stat": "hp", "Add": 6 } ]
|
||||
}
|
||||
```
|
||||
|
||||
- `Equip`——物品的装备类型;由它决定栏位。
|
||||
- `Traits`——穿戴时提供什么,采用 Stats Engine 的特性格式(`Add`、`Percent` 或 `Formula`)。
|
||||
- `Archetypes`(可选)——谁能穿戴它,例如橡木法杖的 `["classic/mage"]`。
|
||||
- `ItemType: TargetUsed` 配合 `ItemAction: action/equip` 会为物品提供装备按钮和目标列表;`verb` 指定按钮文字。
|
||||
|
||||
## 栏位
|
||||
|
||||
栏位是 `equip_slot` 类型的实体。每个栏位都列出它接受的装备类型:
|
||||
|
||||
```json
|
||||
{
|
||||
"Kind": "equip_slot",
|
||||
"Items": [
|
||||
{ "Id": "weapon", "Name": "classic/slot/weapon", "Order": 1, "Accepts": ["sword", "staff", "dagger"] },
|
||||
{ "Id": "body", "Name": "classic/slot/body", "Order": 2, "Accepts": ["armor", "robe"] },
|
||||
{ "Id": "accessory", "Name": "classic/slot/accessory", "Order": 3, "Accepts": ["charm", "ring"] }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
没有 `Accepts` 的栏位接受 `Equip` 等于其自身 id 的物品。
|
||||
|
||||
## 永久提升属性的物品
|
||||
|
||||
`\"ItemAction\": \"action/stat_up\"` 配合 `StatUp` 键——例如 `{"str": 1}`——会永久改变被使用队员的属性,就像药水或书籍一样。物品会被消耗。
|
||||
|
||||
## 在剧本中
|
||||
|
||||
```scenario
|
||||
action equip.put who=rpg_hero item=classic/wood_sword give=1
|
||||
action equip.remove who=rpg_hero slot=weapon
|
||||
when "equipped(rpg_hero, 'classic/wood_sword')" -> :armed
|
||||
```
|
||||
|
||||
- `equip.put` 从背包中穿上物品;加了 `give=1` 则改为直接发放物品,无需在背包里。RPG Plus 就是这样给每个职业发初始武器的。当多个栏位都合适时,用 `slot=` 指定栏位。
|
||||
- `equip.remove` 卸下某栏位中穿戴的物品,放回背包。
|
||||
- 只要物品还穿在身上,`equipped(who, 'item')` 就为真。
|
||||
|
||||
穿戴状态会随游戏一起存档。
|
||||
|
||||
## 出问题怎么办
|
||||
|
||||
1. **点击装备后没有可选的人。** 目标列表只显示队伍成员;在 RPG Plus 中,英雄在序章之后进入村庄时才会加入队伍。
|
||||
2. **物品穿不上。** 没有栏位接受它的 `Equip` 类型,或者它的 `Archetypes` 不包含该角色的职业。
|
||||
3. **面板没有变化。** 物品的 `Traits` 引用了游戏未定义的属性。
|
||||
@@ -1,5 +1,5 @@
|
||||
mod_equipment_name = Equipment
|
||||
mod_equipment_desc = Gear for any game with stats: slots as data (weapon, armour, accessory — or an outfit and jewellery in a novel); an item becomes gear by two keys of its own JSON (“Equip” — the type, “Traits” — what it gives while worn). What is worn feeds the stats, so battles, checks and conditions change at once. Put on through the inventory's usual target picker; actions equip.put and equip.remove; condition equipped(who, item).
|
||||
mod_equipment_desc = Wearable gear for any game with stats: slots as data, items become equipment by their JSON keys, and worn bonuses flow into sheets, battles, checks and conditions at once.
|
||||
equipment/verb_equip = Equip
|
||||
equipment/not_gear = This cannot be worn.
|
||||
equipment/no_slot = There is no slot for this.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
mod_equipment_name = Equipo
|
||||
mod_equipment_desc = Equipo para cualquier juego con estadísticas: ranuras como datos (arma, armadura, accesorio — o atuendo y joyas en una novela); un objeto se vuelve equipo con dos claves de su propio JSON («Equip» — el tipo, «Traits» — lo que da mientras se lleva). Lo que se lleva alimenta las estadísticas, así que combates, tiradas y condiciones cambian al instante. Se equipa con el selector de objetivo habitual del inventario; acciones equip.put y equip.remove; condición equipped(quién, objeto).
|
||||
mod_equipment_desc = Equipo que se lleva puesto para cualquier juego con estadísticas: ranuras como datos, los objetos se vuelven equipo con sus claves JSON, y los bonos de lo equipado pasan de inmediato a hojas, combates, pruebas y condiciones.
|
||||
equipment/verb_equip = Equipar
|
||||
equipment/not_gear = Esto no se puede llevar.
|
||||
equipment/no_slot = No hay ranura para esto.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
mod_equipment_name = 装備
|
||||
mod_equipment_desc = ステータスのあるどのゲームにも使える装備:スロットはデータ(武器、防具、アクセサリー——ノベルなら服装や装身具)。アイテムは自分の JSON の二つのキー(「Equip」——種類、「Traits」——装備中に与えるもの)だけで装備品になる。装備はステータスに反映されるので、バトル、判定、条件がすぐに変わる。インベントリのいつもの対象選択で装備。アクション equip.put と equip.remove、条件 equipped(誰, アイテム)。
|
||||
mod_equipment_desc = ステータスのあるゲーム向けの装備品:スロットはデータとして定義し、アイテムは自分の JSON のキーで装備品になり、装備中のボーナスはシート、バトル、判定、条件にすぐに反映されます。
|
||||
equipment/verb_equip = 装備する
|
||||
equipment/not_gear = これは装備できない。
|
||||
equipment/no_slot = これを付ける場所がない。
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
mod_equipment_name = 장비
|
||||
mod_equipment_desc = 능력치가 있는 모든 게임을 위한 장비: 데이터로 정의하는 슬롯(무기, 방어구, 장신구 — 노벨이라면 의상과 액세서리). 아이템은 자기 JSON의 키 두 개(“Equip” — 종류, “Traits” — 착용 중 주는 효과)만으로 장비가 됩니다. 착용한 것이 능력치에 반영되므로 전투, 판정, 조건이 바로 바뀝니다. 인벤토리의 평소 대상 선택으로 착용, 액션 equip.put과 equip.remove, 조건 equipped(누가, 아이템).
|
||||
mod_equipment_desc = 능력치가 있는 모든 게임을 위한 착용 장비입니다. 슬롯은 데이터로 정의하고, 아이템은 자기 JSON 키로 장비가 되며, 착용 보너스는 시트, 전투, 판정, 조건에 곧바로 반영됩니다.
|
||||
equipment/verb_equip = 장착
|
||||
equipment/not_gear = 이것은 착용할 수 없습니다.
|
||||
equipment/no_slot = 이것을 착용할 슬롯이 없습니다.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
mod_equipment_name = Снаряжение
|
||||
mod_equipment_desc = Снаряжение для любой игры со статами: слоты как данные (оружие, броня, аксессуар — или наряд и украшения в новелле), предмет становится снаряжением двумя ключами своего JSON («Equip» — тип, «Traits» — что он даёт, пока надет). Надетое питает статы, поэтому бой, проверки и условия меняются сразу. Надевается через обычный выбор цели в инвентаре; действия equip.put и equip.remove; условие equipped(кто, предмет).
|
||||
mod_equipment_desc = Носимое снаряжение для любой игры со статами: слоты как данные, предметы становятся снаряжением ключами своего JSON, а бонусы надетого сразу попадают в листы, бои, проверки и условия.
|
||||
equipment/verb_equip = Надеть
|
||||
equipment/not_gear = Это нельзя надеть.
|
||||
equipment/no_slot = Для этого нет подходящего места.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
mod_equipment_name = Trang bị
|
||||
mod_equipment_desc = Trang bị cho mọi game có chỉ số: ô trang bị là dữ liệu (vũ khí, giáp, phụ kiện — hoặc trang phục và trang sức trong tiểu thuyết); vật phẩm thành trang bị nhờ hai khóa trong JSON của chính nó («Equip» — loại, «Traits» — tác dụng khi mặc). Đồ đang mặc nuôi chỉ số, nên chiến đấu, kiểm tra và điều kiện thay đổi ngay. Mặc qua bộ chọn mục tiêu quen thuộc của túi đồ; hành động equip.put và equip.remove; điều kiện equipped(ai, vật phẩm).
|
||||
mod_equipment_desc = Trang bị mặc được cho mọi game có chỉ số: ô trang bị là dữ liệu, vật phẩm trở thành trang bị nhờ các khóa JSON của chính nó, và phần cộng của đồ đang mặc chảy ngay vào bảng chỉ số, trận chiến, phép kiểm và điều kiện.
|
||||
equipment/verb_equip = Trang bị
|
||||
equipment/not_gear = Thứ này không mặc được.
|
||||
equipment/no_slot = Không có ô nào hợp cho thứ này.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
mod_equipment_name = 装备
|
||||
mod_equipment_desc = 适用于任何有属性的游戏的装备:栏位即数据(武器、护甲、饰品——或小说里的服装和首饰);物品只需自身 JSON 中的两个键就成为装备(“Equip”——类型,“Traits”——穿戴时提供什么)。穿戴的物品会影响属性,因此战斗、检定和条件立即随之改变。通过背包常用的目标选择来穿戴;动作 equip.put 和 equip.remove;条件 equipped(谁, 物品)。
|
||||
mod_equipment_desc = 适用于任何有属性游戏的可穿戴装备:栏位以数据定义,物品凭自身 JSON 键成为装备,穿戴中的加成会即时体现在面板、战斗、检定和条件中。
|
||||
equipment/verb_equip = 装备
|
||||
equipment/not_gear = 这个无法穿戴。
|
||||
equipment/no_slot = 没有可放它的栏位。
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
"name": "Equipment",
|
||||
"version": "1.0.0",
|
||||
"author": "ct",
|
||||
"description": "Gear for any game with stats: slots as data (\"Kind\": \"equip_slot\": weapon, body, accessory — or outfit and jewellery in a novel), items become gear by two keys of their own JSON (\"Equip\": the equip type, \"Traits\": what they do while worn), optional \"Archetypes\" limits. Worn items feed the stats as a trait source, so battle attributes, checks and conditions follow at once. The item action action/equip uses the inventory's own target picker; scenario actions equip.put and equip.remove; condition equipped(who, item); the Equipment block of the character sheet.",
|
||||
"description": "Wearable gear for any game with stats: slots as data, items become equipment by their JSON keys, and worn bonuses flow into sheets, battles, checks and conditions at once.",
|
||||
"category": "gameplay",
|
||||
"sources": [
|
||||
"src/**/*.cs"
|
||||
|
||||
Reference in new issue
Block a user