バグ: 同行NPCの所有召喚獣で敵を倒して発生した死亡イベント中に同行NPCを解除してシナリオ終了するとエラー

Issue #1106 resolved
tachi gigas created an issue

お疲れ様です。
恐れ入りますが、いや大変な中本当に恐れ入りますが、ご相談にあがりました。

生野菜サラダ様「宇宙よりの侵略者vs銀河の巨人」のシナリオ終了後にエラーになり調査をしたところ、表題に示した現象を確認しました。エラーログとサンプルシナリオを添付します。

Version : 5.1 (64-bit) / 2023-11-04 11:17:42
DateTime: 2023-11-22 21:32:44
Traceback (most recent call last):
File ".\cw\thread.py", line 981, in run
File ".\cw\thread.py", line 1034, in _run
File ".\cw\thread.py", line 1045, in main_loop
File ".\cw\eventhandler.py", line 131, in run
File ".\cw\eventhandler.py", line 857, in executing_event
File ".\cw\battle.py", line 109, in start
File ".\cw\battle.py", line 181, in run
File ".\cw\character.py", line 1152, in action
File ".\cw\character.py", line 1087, in use_card
File ".\cw\event.py", line 1468, in start
File ".\cw\event.py", line 908, in start
File ".\cw\event.py", line 1540, in end
File ".\cw\thread.py", line 4897, in clear_inusecardimg
ValueError: list.remove(x): x not in list

エラーになった行ではself.inusecardsが空であるにも関わらずremoveをした事により発生しています。アイテムカード等ではエラーにならないため、character.py以下use_cardメソッドの957行目~991行目に何かがあるのか、それとも他の場所に問題があるのか考えが及びません。

恐れ入りますが、対処法をご教示いただけましたら幸甚です。

Comments (6)

  1. k4nagatsuki repo owner

    ご報告とサンプルシナリオありがとうございます。助かります。

    時間のある時に見てみようと思いますが、とりあえずエラーが起きている箇所から言えるのは、画面に表示されているはずの使用中カードがイベント処理のどこかのタイミングでcw.cwpy.inusecardsから消えているという事です。どこで消えたのかステップ実行しながら追っていけば原因を特定できそうな気がします。

  2. k4nagatsuki repo owner

    pull request #348

    原因を特定できました。キャスト離脱コンテントで使用中カードが正しくクリアされておらず、キャストは存在しないのに使用中カードのみ残っているという状態になり、エラーを誘発していました。

    修正できたと思います。

  3. tachi gigas reporter

    申し訳ございませんでした…何かご存知かなと思ってお尋ねでしましたが、先に対応されてしまいました。泥臭いprintfデバッグやってもよかったのでしょう。正しい動作を確認しました。ありがとうございました。

  4. tachi gigas reporter

    本件は解決済みにつきクローズ可である旨記載いたします。しかし口惜しい事に、僕の投稿であるにも関わらず解決ボタンが表示されていません……。

  5. k4nagatsuki repo owner

    リポジトリオーナーがオープンしないといけないんでしょうか? 私の方でクローズしておきます。

  6. Log in to comment