Daydreaming in Brookline, MA

DL-8; キャンプと戦闘の基本部分

1 はじめに

Rogue+Wizライクなゲーム(仮称Daemon Lord)を作るプロジェクトの8回目です。今回はキャンプと戦闘の非常に基本的な部分を実装しています(現在進行形)。

githubでコードを 公開 しています。MacとLinuxで動作確認していますが、Windowsは未対応です。

2 表示バグの解決

これまでずっと妙な表示バグに悩まされてきました。DL(Daemon Lord)では仮想画面を使ったダブルバッファリングをしているのですが、ふと、一部古い画面を表示してしまうのです。致命的なバグではないのでしばらく放置してきましたが、ようやく原因がわかりました。メッセージ表示メソッドにおいて、メッセージウインドウのみを書き換えて他は前回の画面のまま表示していたのです。現象から原因を推測するのが難しいバグでした。

3 キャンプ

キャンプはキャラクター表示からの魔法(スペル)使用やアイテムの装備など、使い回しでそれなりに実装できました。キャンプ途中のみとはいえ、回復魔法が使えるのは心強いです。

4 戦闘基本

Wizardryのシステムにおいて、戦闘は最も複雑な部分です。その中で、逃亡、単純な打撃、parry(身を守る)と戦闘終了時の経験値とgoldの取得のみを実装しました。打撃は更に属性攻撃やドレイン、クリティカルなどの効果があります。

 daemon lord - dl - [battle] floor: 1 (8/14) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|   1) 1 robber                   (1)    |^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|                                        |^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|                                        |^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|                                        |^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^....###.#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|   Betty's action? > f                  |^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|   Cal's action? > f                    ||^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|   Debora's action? > p                 |^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|   Emily's action? > p                  ||^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|   Fast's action? > p                   ||^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^| * hit any key or t)ake back >          |^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^| * Alex stabs violently at robber and   ||^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|   hits 1 times for 2 damage.           |^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^| * Fast parried.                        |^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^| * Betty stabs violently at robber and  ||^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|   hits 1 times for 4 damage.           ||^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^|   robber is killed.                    |^^^^^^^^^^^^^^^^^^^^^^^^
 # name       class  ac   hp status       * south                               
 1 Alex       G-FIG   2   13 fight          Which direction? - ;)leave > o      
 2 Betty      G-FIG   3    8 fight          Which direction? - ;)leave > j      
 3 Cal        G-SAM   4   16 fight        * Unlocked.                           
 4 Debora     N-THI  10   11 parry        * south                               
 5 Emily      G-PRI  10   12 parry        * south                               
 6 Fast       G-MAG  10    7 parry        * *** encounter ***   

メッセージのみの戦闘は地味ですねぇ。まあWizardryはこれでいいのです。

5 次は、、

戦闘の実装を進めます。魔法がキャンプと戦闘で思ったよりも共通化が難しいので、工夫が必要です。不本意ながら、それぞれ独立した実装になってしまうかもしれません。