スキルツリー

概要

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

試し方

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

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

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

GS2 Studio で使う

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

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

ソースコード