satofumi 2022/09/20 20:00

NPC をコーディングして領地運営するゲーム開発(装備アイテムと料理アイテムの効果について)

このゲームは複数の NPC の行動を Lua スクリプトで記述していろんな仕事をさせるゲームなわけですが、今回はその仕事をするのに必要な装備アイテムと、仕事をして空腹になったときに食べる料理アイテムについての記事になります。

装備アイテムの効果とクラフト

このゲームで NPC が行うべきタスクは大きく分類すると「収集」「加工」「探索」「防衛」なのですが、どのタスクでも専用のアイテムを装備している必要があります。
例えば坑道で収集(採掘)するにはつるはし、ダンジョンを探索するには攻撃力の高い武器の装備が望ましい、といった具合です。

つるはしを装備して鉱山に移動して採掘する Lua スクリプトの記述

character:get(Items.Pickaxe)
character:equip()

local mine = world:buildings(Tiles.Mine)[1]
character:move(mine)
character:action()

この装備アイテムが必要な制限によって、場合によってはそのタスクに従事できる NPC の制限をすることや、タスクに従事できる NPC の数を急に増減できないことを狙っています。

料理アイテムの効果とクラフト

このゲームの NPC には満腹度のパラメータがあり、満腹度がゼロのときにはタスクを実行することができません。そして、時間経過で減る満腹度を回復させるのが料理アイテムです。

キッチンに移動してパンを取って食べる Lua スクリプトの記述

local kitchen = world:buildings(Tiles.Kitchen)[1]
while kitchen:count(Items.Bread) <= 0 do
   coroutine.yield()
end
character:move(kitchen:grid())
character:get(Items.Bread)
character:eat()

この料理アイテムは複数の種類を用意します。そして、勝利を食べると食べた NPC のパラメータに経験値が入って能力値が増加する仕組みを考えています。
例えば、肉料理を食べると STR(ちから)に、果物系の料理を食べると INT(賢さ)に経験値が入るといった具合です。

また、今のところ主人公は領主という設定なのですが、領主のパラメータの1割を全ての NPC のパラメータへの追加ボーナス値として加算する予定です。
なので、領主のパラメータを増加させるために、高級だけどコストのかかる料理をたくさん食べさせるような展開を考えています。

まとめと今後の予定

今回は、装備アイテムと料理アイテムについて解説しました。
次回は冒険者パーティを編成して、ダンジョンを「探索」させるあたりについて記述します。

月別アーカイブ

限定特典から探す

記事を検索