実装内容を忘れそうなので実装した仕様について書き留めておきます。
別に読んでもいいことはないかもしれません。
通った場所を罠チェック済みに
普通に歩けば罠が発動または罠を避けます。その場合罠は明らかになるので通った場所は罠チェック済みとします。
ただし、エレキ状態は罠を踏まないので移動しても罠チェック済みしないように実装します。
実装は現在位置を罠チェック済みとしています。高速移動で取りこぼす気がしましたが未だに取りこぼしは見ていません。FPSが60で維持できればいけそうです。これが実現できたのでこの仕様を実装し始めました。
初期位置、エレキを脱いだ場所は罠チェック済みにしない
初期位置はワナの上に載っていても表示されないので、移動するまでは罠チェック済みとしません。
何もないマスでエレキを脱ぐと罠チェック済みになるように見えますが、アイテムの落ちているマスをチェック済みにしているためです。
丸太のワナを踏む、うしわか丸系にふきとばしの杖を投げる、振るで自分が吹き飛ぶ場合、ムーロンのビームで吹き飛ぶ場合、罠チェック済みとしない
丁寧にマップ上で1マスずつ飛ぶおかげで罠チェック済みとなってしまうので、ならないように実装。
よせカエル系の引きよせ、ロケットイノシシ系の吹き飛ばし、タイガーウッホ系の投げ飛ばされしは1回で飛ぶので問題ありません。
新たに他のアクションの結果罠が発動するケースがあるので、罠の連鎖起動にも対応しました。丸太>丸太>丸太…、ふきとばし>丸太…、引きよせ>丸太…、場所替え>丸太…、ビーム>丸太…、投げ飛ばし>丸太…、ベロよせ>丸太…
追加で、アクィラの通常攻撃(ふきとばしみたいなやつ)、つむじかぜの突風攻撃(ふきとばして自分は死ぬ)にも対応しました。
会場を作るのに30分もかかりましたw
素振りしたマスを罠チェック済みに
武器を振った前のマスが罠の場合、罠が明らかになるので罠チェック済みとします。
敵に振るか素振りかで値が変わる箇所があったのでそれで実装。しかし、正面1マスに敵がいなくても攻撃ができる武器の場合は素振りにならなかったので、攻撃した場合も正面の1マスはチェックする。
アイテムの落ちているマスを罠チェック済みに
アイテムと罠は同じマスに共存できない。データ上はできるけど、仕様的にならないとする。
以前は全てのアイテムの下を罠チェック済みにしていましたが、あかり状態になった時カッパの下にアイテムがあるのが分かってしまうので、画面内に入ったアイテムの下だけを罠チェック済みになるように変更しました。
攻撃系の秘技で素振りしたマスを罠チェック済みに
秘技で武器を振っても、罠が明らかになるので罠チェック済みとします。
正面1マスに敵がいなくても攻撃ができる武器の場合も攻撃しつつ罠チェックも行う。
会心剣、必殺剣、雷神剣、龍斬り、黄泉送り、爆斬剣、目激、水妖斬、吸散、四方剣、八方剣、神速剣、必中剣、兜割り
素振りのチェックが実装できなければ、神速剣の1回目で倒した時の実装が難解になる所でした。
めぐすり草を飲んだ時、活目の秘技を使用したとき全エリアのマスを罠チェック済みに
罠が明らかになるので罠チェック済みとします。
初めは判定を間違えて置いても投げても発動していました。間違って発動したら全て罠チェック済みになって悲惨です。
四股の秘技を使用した時、アスカと同じ部屋の全てのマスを罠チェック済みに
罠が明らかになるので罠チェック済みとします。
検証したら、この系統の効果範囲は正確には同じ部屋と周囲8マスが対象でした。
どうでもいいことですが、視界不明瞭大部屋はアスカの周りの部屋が移動する(マップデータが常に変動する)仕様で部屋以外の場所は通路扱いになっています。
ワナの巻物を読んだ時、アスカと同じ部屋の全てのマスを罠チェック済みを解除
罠チェック済みマスにも罠があるかもしれないので解除します。
めぐすり草状態の場合は解除しません。
初めは巻物も判定を間違っていて呪いの巻物を読もうとしても発動していました。今は直っています。
ワナけしの巻物を読んだ時、アスカと同じ部屋の全てのマスを罠チェック済みに
部屋のすべての罠がなくなるので罠チェック済みとします。
モンスターハウスの巻物を読んだ時、アスカと同じ部屋の全てのマスを罠チェック済みを解除
部屋にいない場合は部屋に飛びますので、飛んでから罠チェック済みを解除します。
めぐすり草状態の場合は解除しません。
ワープ終わるまで待たないといけないのが厄介でした。
罠のワナを踏んだ場合、罠の位置の部屋の罠チェック済みを解除
飛乗り発動とコマンドから踏むパターンがあります。
上記の罠の連鎖起動にも対応しているので、丸太のワナ>罠のワナとかでも動作します。
大砲の弾以外を投げて着地点に罠のワナがあった場合、罠の位置の部屋の罠チェック済みを解除
罠のワナのために段々大変な実装に。
大砲の弾を転がした時、通ったマスを罠チェック済みに
大砲の弾を転がすと、罠があると発動していきますので、罠チェック済みとします。
実装方法でだいぶ悩んで今の所、自力で転がすルートを調べていくという実装をしています(罠の発動を追跡していっても一瞬で終わるので取りこぼす可能性を考慮して)。
めぐすり草状態、または飛ばず異常なら処理をしない
強肩の秘技なら20マスまで
遠投の腕輪を(未識別でも)装備、遠投の秘技なら画面外まで
遠投の秘技は投げるときアスカの向きがずれているので発動前の向きに投げる
遠投以外で水路に当たればチェック終了
遠投は当たらずに直進する。
遠投以外で壁に当たった場合チェック終了
遠投は当たらずに直進する。
まがりの腕輪を(未識別でも)装備なら仕様に従って方向転換またはチェック終了
敵にぶつかればチェック終了
罠があるなら種類を調べて、トラバサミ、バネ、バネ(固定)、落し穴ならチェック終了
罠のワナの場合は座標を控えておく
チェックが終了した後、チェック中に罠のワナがあった場合、座標の部屋の罠チェック済みを解除
罠のワナが発動して、同じ部屋の罠チェック済みを解除となる。
バネ、高とび草(祝福含む)、たかとびの腕輪で飛んだ着地点を罠チェック済みにしない
たかとびの腕輪の発動ケースが非常に多くボス系の攻撃・特技まで殆ど対処しましたが一部未対応です。
分かってて放置しているのはキライ系の自爆で飛んだ時ですけど、キライが自爆するケースも非常に多いので対処が大変そうなので保留しました。すいません。
店の入り口
店の入り口と判定されている場所は罠やアイテムも置けません。
なので、罠チェック済みにしようと思ったのですが、店拡張の際に新たに出来る入り口ではアイテムを置いたりは出来なくなりますが、既存の罠やアイテムは存在できてしまうのでチェック済みとはしません。
水たまり
水たまりには罠がないはずなので罠チェック済みとします。
掘った壁
掘った壁は地面を見ればわかりますので、罠チェック済みとします。
大部屋使った際は掘った壁などは分からなくなるので既に調べたところ以外は新たに罠チェック済みは増えません。
アイテムは拾えるが、置けないマスになるということです。
水がれした水路
水がれした水路も地面を見ればわかりますので、罠チェック済みとします。
水たまりがあった場所もデータ的には分かりましたが、見た目は戻るようなのでチェック済みにはしません。