NPC をコーディングして領地経営するゲーム開発(パラメータ強化による恩恵の実装)
食事やワークの経験値でキャラクターの能力が上がるようになったので、この上がった能力にで得られる効果を実装していきます。
やったこと
VIT 増加に合わせてスタミナを増加させる
VIT の増加に伴ってスタミナが増えるようにします。これは増やす処理とスタミナバーの表示を調整するだけです。VIT が1増えるごとにスタミナが1増えるようにしました。
ワークが早く終わるようにする
ワークを行う建物ごとに「この建物では STR, DEX が求められている」という設定を行えるようにします。例えば、キッチンでは DEX が要求されて、DEX パラメータが 120 だとしたら 1.2 人が働いているものとして扱うようにします。
で、キッチンに DEX が要求されるよう変更した YAML ファイルがこれです。
これを使うようなコードも実装しました。よいです。
あと、LUC 依存でワーク中に "Lucky!" という表示とともにワーク時間を急に減らす演出も実装したいと思います。LUC が 110 だとしたら、1秒毎に 0.1 の確率で発動するようにします。重要度は低いので、この実装はまた今度にします。
ダンジョン探索時の攻撃力に反映させる
装備ごとに必要パラメータを定義して、それを満たしている割合だけ本来の攻撃力を発揮するようにします。
- 要求パラメータが DEX: 110 で本来の攻撃力が ATK: 50 の短剣の場合
- ATK' = ATK x max(DEX, 110) / 110
実際にはもう少し小難しい計算式にします。
そして、要求しているパラメータを ReqDEX という記述で追加した YML ファイルがこれです。
よいです。
とりあえずデータを読み込むところまで実装しました。このデータを使うあたりはまたダンジョン探索を見直すときに実装します。
武器だけでなく防具にもこの要求パラメータの概念を取り込んでもいいですし、LUC による回避補正やクリティカル補正も考えています。
まとめと今後の予定
パラメータ上昇が何に影響を与えるかを定義して、そのいくつかを実装しました。
今回の変更をゲーム中でどう説明するかは、また後で考えて実装します。どこで説明するかですが、理想とする順に
- UI を見ればわかるようにする。
- ゲーム中のヘルプで説明する。
- ゲーム中のドキュメントで説明する。
- 説明しない。
を考えています。
次回は「称号」の概念について仕様を決めて実装に着手します。がんばります。