星田オステオパシー

Racketで何か・・DD&D016 道具使用ほぼ完成

前回までで、とうとう他人に対してアイテムを使用するというところが出来たのでした。これを応用したら相手が敵でも味方でも単体でも全体でも簡単に作れそうなもの・・

じゃあまあ魔法行ってみますか!と言うことでルールを読む
 ドラクエとかのMP方式ではなくてその都度覚えるってのがD&Dの系譜っぽいのでその路線で行くか・・。
 予め職業ごとの魔法はすべて回数ゼロの連想リストで備えておいて、レベルアップした時に回数を正の数にするとか・・?いや・・これはまたスロット必要になるかなぁという予感。けど、さしあたっては

 使うか分からないけど使える術者の種類をスロットに加えて、使用可能レベルも設定しておくって程度で良いかな

 属性だったところを潰してしまったけど・・耐性の処理を考えると悪手だったな。また復活させよう

 アイテムも魔法も手持ちに使えるものがないときには派生メニューそのものが出ないようにしまして・・

 全体攻撃魔法(仮名”イオ”)の動作のテスト。出来るとは思うけど念の為にset-xxx-ooo!がfor-eachで使えるかチェック

 オッケイ、使えている

 魔法の仕組みもアイテムと一緒の流れで・・つまりスロットにBATTLE-MAGICというのを追加して、BATTLE-C-MAGICと連携して行く感じで。構造体の場合分けをすればスロット増やさないでも書けたか・・と今では思いますけど、まあ良いか!

 ACは全体魔法なのでさきほどテストしたのをBATTLE-C-LISTに組み込んで・・と、ここで宿直の時間は終了。あっさり書いたけど実は試行錯誤で全然進まなかったんですよね・・楽勝だと思ってたのになぁ

 帰宅後、不完全燃焼だったのと本日は週に一度の宿直なしの日なので張り切って続きを書く。
 魔法関係ないけど、道具を使った時にマックスHPよりも高くなってしまうのを是正するためのテスト。
 が、普通に書くんじゃなくて
 「もしかして・・On-tickに渡すようにしたら各アイテムごとに書かなくても秒間何度もチェックして修正されるのでは?」
 と思いついてしまい挑戦。結果・・なんかうまく行かなかったので諦めました(^_^;)

 気を取り直してアイテム使用時に判定をしてMAXを超えないように書く

 ではテストで投げ薬草を自分に使ってみる。現在HPはイジって120(ホントはMAX100)

 無事にHP100にリセットされて手番が次に回りました、やったぜ!

 続いて自分に使う回復アイテムの場合。これはそのままCHARACTER-Hpの中にIfでブッ込んで処理、成功

 まだまだ行くぜ、更に続いて気になっていた使用したアイテムを減らす処理。まずは単体の場合。
 U-ITEMにセットされているアイテム名でCHARACTER-Itemから検索して選び出し、その他のリストも作っておいて値を変化させたものと結合

 ここで高級薬草を使うと・・・

 次のターンで確認するとたしかに1つ減っている!
 並びが先頭に来てしまうけど・・考えてみるとこれはこれで有用な動きなので最初からそうしようと思っていたことにしておく


 続いて味方単体アイテムの場合も(忘れないうちに)。実はこっちはちょっと手こずった・・それも全く関係のない部分のバグで。敵の攻撃を受けた時にHpを
 (Cons 新たなHp(cdr(古いHp))ってするところを
 (Cons 新たなHp 古いHp)としてたものだから、攻撃を受けるたびにHpが
 '(95 98 100 . 100)などと変化して、それがたまたまCarしか使わなかったので表示には問題がなくて気づかなかった(^_^;) このせいでメチャクチャ時間を取られました・・しょーもな〜

 という訳で味方に使うアイテムを使うと・・

 次のターンにはちゃんと数が減って先頭に、やったぜ!後は魔法はほぼこのコピペで行けるので、今度こそ楽勝なハズ!

 あと、敵の行動中にキーを押すとエラーが出るのでHEROの時にしかキー入力を受け付けないようにする。
 む?という事は敵行動中でも割り込ませて処理を書くことが出来るってことだな?いつか役に立つかも・・

 というところで今回は終了。後はデータを入れていくだけで人間の行動は結構いい感じになるんじゃないかなぁ
 敵の攻撃はCHARACTER-Skillに10個要素を持つリストを作って「魔法」「殴り」「特殊攻撃」を
 '(殴り 殴り 殴り 殴り 殴り 殴り メラ イオ 石化 レベルドレイン)
 みたいに持たせてランダムで選ばせればそれっぽく動くかなぁ・・と。

 ところで・・

 「このDD&Dいつまで続けんの?」

 という問題がありますね!正直、システム的な事を実装するにはどうすれば?とか考えるのは好きなんですが、ゲームデザインには全く興味がないと言うことが分かってきました(^o^)
 という訳で、敵の特殊攻撃とか魔法実装あたりまでやったらしばらく放置して新たな「何か動くもの」に挑戦しようと思ってます。

 ・Cametanさんから提案のあったCatan的な何か(ヘックスの管理をどうするのか全く想像がつかないが)
 ・山本弘さんのトランプを使ったローグライクゲームブック「4人のキング」
 ・黒田幸宏さんの名作と名高い「戦国大名」というボードゲーム

 これらのシステム的な移植に挑戦してみたいな!と。まあ100個くらい作ったらちょっとは見れるものになるんじゃないか?と!

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事