今回は、「おしっこ臭さシステム」というものを実装しましたが、この構想についてはまだ紹介していなかったので、ちょっと説明します。この機能は、このゲームの設計思想にも関わるところなのですが、そのあたりはこちらの過去記事に詳細に記しています。
この中で、おもらしのデメリットを大きく設定することが重要であることを述べましたが、今回の機能は、まさにおもらしのデメリット関するシステムです。
しかし、戦闘力の低下はおもらしのデメリットとして、単体では不十分かつ、程度が大きければ不適当であると考えています。
理由は以下の二つです。
- トイレが宿屋の近くにあることを前提に、トイレ直前でのおもらしにもデメリットを課したい
- おもらしが全滅に直結すると、おもらしの羞恥や不快感などを回避するのとは違う趣になる
そこで、おもらしのデメリットは成長やアイテム入手に対するマイナス修正とするのが適当と考えました。
今回の「おしっこ臭さシステム」は、そのうちアイテム入手に対するものです。
このゲームでは「おしっこ臭さ」というパラメータがあり、それがアイテムドロップ率に対するマイナス修正となります。また、将来的にはこれを参照するイベントフォーマットを作成し、採取場を使えるかどうかにも関わるようにする予定です。
おしっこ臭さは以下のように決定されます。上に書いたものほど、影響度が大きいです。
- おもらししたぱんつを穿いている場合、加算
- おもらしした服を着ている場合、加算
- おもらしした装備品を装備せずに持っている個数に応じて加算
- 今日、おもらしした回数に応じて加算
では、仕様はこのくらいにして、実装に話を移そうと思います。
今回の機能は、以下の小機能から成ります。
- おもらしにより衣服が濡れる処理
- 濡れた衣服を洗濯して元に戻す処理
- おしっこ臭さを取得する処理
- アイテムドロップ率を修正する処理
- おしっこ臭さをステータス表示する処理
これら処理は、濡れた後の衣服を別データとして、必ず通常時の衣服の次のインデックスに配置するフォーマットを前提にしています。
また、濡れた後に衣服には、濡れた衣服であることを示した"<wet/>"というタグを付けています。濡れた衣服のステータスは個別に設定していますが、本来よりもかなり低い値にしています。
おもらしによって衣服が濡れる処理は、以下のように別のアイテムと交換して装備を変更する処理として実装しています。なお、服が濡れるのは、前押さえをしながら漏らした場合か、パンツタイプの衣服であることを表す"<pants/>"というタグが付いている場合に限ります。
おしっこ臭さ取得処理は、"<wet/>"タグの付いたアイテムを探して計算することによって実装しています。
洗濯処理は、逆の手順を踏んで濡れた衣服を濡れる前の衣服に交換する処理になっています。
なお、ステータス表示は、既に実装したものを拡張しています。
ドロップ率を修正する処理は、毎度おなじみの既存の処理を再定義する方法で実装しています。
ここは、アイテムドロップ率の補正値を取得する処理です。これに、おしっこ臭さによるマイナス修正を乗じています。
では、実際に動かしてみましょう。
おもらしをしてしましまいた。この時点では何も表示されていません。
おもらしが終わると、尿意の下に水滴のマークと数字が表示されます。これが「おしっこ臭さ」です。
なお、ぱんつが濡れている場合のおしっこ臭さは4、おもらし回数は一回につき1としているので、合計値でおもらし臭さ5となっています。
装備を確認すると、ぱんつがおもらしぱんつになっています。今のおもらしは前押さえ無しのおもらしで、かつ白ワンピはパンツタイプではない服なので、服は無事でした。
濡れ物を洗濯すると。ぱんつの分のおしっこ臭さが無くなって、おしっこ臭さは本日のおもらし分の1になります。
なお、スクショを貼っても面白くないので割愛しますが、ドロップ率が下がることも、なんとなく確認しました。
さて、今回は「おしっこ臭さ」というアイテム入手に対するマイナス補正となる要素を実装しました。
ところで、記事前半に以下のような記述をしています。
>おもらしのデメリットは成長やアイテム入手に対するマイナス修正とするのが適当と考えました。
そういうわけで、次回はおもらしによる成長へのマイナス修正となる「宿屋成長システム」を実装します。
概要としては、戦闘勝利時の経験値の取得を保留し、宿屋に止まった際に一括で経験値取得するというものです。この経験値に、本日おもらし回数によるマイナス補正を加えます。
宿屋イベント全般的なUIにも関係するので、ちょっとボリュームが大きくなりそうです。
更新間隔開くかも知れませんが、あしからず。
0 件のコメント:
コメントを投稿