星田オステオパシー

Racketで何か・・DD&D017 魔法&魔法と道具の対象リスト関係&魔法で始末した時

前回

「ま、後は楽勝よw」

とか書いてましたが・・いやはや苦労しましたよ〜・・自業自得なんですけど!

 ITEMの時と同じなんでアッサリなんですけど、メインメニューでmを押すとBATTLE-C-MAGICに#tを与えると魔法メニューが出る

 魔法を選んでBATTLE-C-MAGICに魔法がセットされると魔法の種類によって処理が変わる。全体攻撃の場合は即座に影響が出る。HOやASなど対象者メニューが必要な場合にはBATTLE-MAGICを#tにする

 BATTLE-MAGICが#tになったら、HOだったりASだったりで場合分けする。HOの場合には対象者のHPを回復

 ASの場合には敵対象者のHPを減らす。内部的にはコレで何とかオッケイなんですが・・ここまでもCaseとCondとElseがもう処理が追いつかなくて大変でした。結局関数化してないから見通しが悪いんだけど・・。

 と、ここまでが宿直。

 で、ようやく表示部分。と、ここで気づく。今までみたいに上から上からという方法では、階層が同列のアイテム使用と魔法使用は別の関数として書く事が出来ないのでは?
 しかもアイテムでも魔法でも対象が敵だったり味方だったりするんだけど、今までに書いてたのは回復道具だけだったので、そこんところも場合分けしないといけない。
 で、上の画像のように書いたんだけど・・あ〜そうか・・即座に評価されるからBATTLE-U-ITEMに違うデータを持たせる設計だとエラーが出ると

 しょうがないのでITEMとMAGICでそれぞれ種類によって対象メンバーを呼び出すように・・いや、これは後で多少なりともエレガントになるようにしないと。まあ、動くんですけど!

 で、ほとんど同じものをMAGICにも。

 結果・・メラ(対象が敵単体)の場合はこのように敵リストが

 ホイミ(対象が味方単体)の場合には味方リストが出るようになりました。

 イオを使うとエラーが出てたんですけど、原因は敵が魔法で死んだ時の処理をしてなかったため。まあこれは生あるもののみフィルターすればエエやろ。
 逆にザオリク的なのは死者のみフィルターすればエエわけで・・フィルターめちゃ便利だな!

 イオを選ぶと

 無事にお亡くなりになりました

 という訳で今日はこんくらいにしといたろ!(ヘロヘロ)
 後気になるのは・・・

・魔法のエフェクト
・バッドステータス攻撃

 そして何よりもコードのリファクタリングね。これを優先しないと特殊能力の実装とか無理だろ。
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

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

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