NPC をコーディングして領地経営するゲーム開発(ダンジョン探索の後衛の処理)
3人の NPC がダンジョン探索できる仕組みがあるのですが、前衛と後衛の概念がなくて遠距離武器の意味がないので「1,2番目が前衛、3番目は後衛」「後衛は遠距離武器でないと攻撃できない」とかのルールを追加していきます。
実装
遠距離武器を持った NPC が後衛になるようにする
「後衛は遠距離武器でないと相手を攻撃できない」を実装する前に、パーティメンバーの並び順を自動調整する機能を先に実装します。今は「冒険者ギルド」に入った順にパーティ編成されていますが、NPC の並びが前から「遠距離、近接、近接」になってしまうと3番目になってしまった近接装備の NPC が攻撃できないからです。
装備ごとに「攻撃できる距離」を定義して、それの順に並ぶようにします。
この並びの調整については、アイテムパラメータに "Ranged" という属性があるので、武器が Ranged のときに 1 を返し、それ以外のときに 0 を返すメソッドを Sort() に渡して List<Character> Members をソートして実現します。
Ranged でない後衛が攻撃できないようにする
「遠距離武器でないので相手を攻撃できません」とか表示できるように、攻撃できないメッセージを表示するための状態を追加しました。
そして後衛で遠距離武器でないときには この状態に遷移させるようにしました。よいです。
Melee が相手の後衛を攻撃できないようにする
これは、攻撃が命中するかの判定を繰り返す回数を前衛の最大数である2までになるように変更して実現しました。
よいです。
まとめと今後の予定
ここまでで遠距離武器のための処理を追加して動作するのを確認できました。大変よいです。
次回は引き続きワールド2用の機能を実装しつつ、各ステージをクリアできるようにしていきます。がんばります。