> For the complete documentation index, see [llms.txt](/llms.txt)

# スキルツリー

前提条件と解放コストを持つノードを辿って能力を解放します。解放済みノードはキャラクターごとに記録されます。




**このデモについて**

デモは匿名アカウントで自動的にログインします。このアカウントはショールームのすべてのデモで共有されるため、あるデモで手に入れたアイテムや通貨が別のデモにも反映されます。読み込みには少し時間がかかります。画面が小さい場合は新しいタブで開いてお試しください。

## 概要

キャラクターを仲間にして、そのキャラクターのスキルツリーを開き、コインを支払ってノードを解放するデモです。ツリーは `first`、`left`、`right`、`last` の 4 ノードで、`left` と `right` は `first` を、`last` は `left` と `right` の両方を前提とします。解放の記録はキャラクターごとに分かれていて、解放したノードは解放コストの半分を返してもらって元に戻すこともできます。

## 試し方

1. **Recruit a character** で **Recruit** を押してキャラクターを仲間にします。**Open a character's tree** にそのキャラクターの行が追加されます。
1. **Get coins** の **Deposit** を押して、**Your coins** に無償コインを 100 枚入れます。4 ノードの解放コストは 10、20、20、50 で、合計がちょうど 100 です。
1. キャラクターの行の **Open tree** を押すと、**Skill tree** が開き、ノードごとに名前、解放コスト、押したときに起きることが表示されます。
1. `first` の **Release** を押すと、10 コインを支払って解放されます。前提が未解放のノードで **Release** を押すと、`left` なら `releases 2, 30 total` と表示されているとおり、前提のノードも合わせて 1 回で解放されます。
1. 解放済みのノードの **Restrain** を押すと、そのノード（とそれを前提にしている解放済みのノード）が未解放に戻り、解放コストの 50% のコインが戻ります。
1. **Close** でツリーを閉じ、別のキャラクターを仲間にしてツリーを開くと、解放状況がキャラクターごとに別々であることを確認できます。

## 使用している GS2 のサービス

- [GS2-SkillTree](/ja/microservices/skill_tree/): GS2-SkillTree のノードモデルが 4 つのノード、それぞれの前提ノード、解放時に消費するコイン、元に戻したときの返却率（0.5）を定義します。解放状況は仲間にしたキャラクターのアイテムセット（`propertyId`）ごとに記録されます。
- [GS2-Money2](/ja/microservices/money2/): GS2-Money2 のウォレットがコインを保持します。ノードの解放時には、そのノードの解放コストが `Gs2Money2:WithdrawByUserId` で引き出されます。
- [GS2-Inventory](/ja/microservices/inventory/): GS2-Inventory が仲間にしたキャラクターを保持します。そのアイテムセットの GRN が、スキルツリーの持ち主を表すキーとして使われます。
- [GS2-Exchange](/ja/microservices/exchange/): GS2-Exchange の交換レートが、**Recruit** によるキャラクターの入手と **Deposit** による無償コインの入金を定義します。

## GS2 Studio で使う

GS2 Studio のシンプルモードで **機能を追加** を開き、**スキルツリー** の **追加** を押すと、この機能を自分のプロジェクトに取り込めます。パッケージを直接指定する場合は **GitHub から追加** を選び、次のパッケージを指定します。

```text
https://github.com/gs2io/gs2-studio-package/tree/main/micro-economy-skill-tree/packages/micro-economy-skill-tree
```

- オーナー: `gs2io`
- リポジトリ: `gs2-studio-package`
- サブディレクトリ: `micro-economy-skill-tree/packages/micro-economy-skill-tree`

## ソースコード

- デモのプロジェクト: <https://github.com/gs2io/gs2-studio-package/tree/main/micro-economy-skill-tree/live-demo>
- 機能パッケージ: <https://github.com/gs2io/gs2-studio-package/tree/main/micro-economy-skill-tree>



