追加案: シナリオ側からのCardWirthPyバージョン識別の方法を設ける

Issue #198 resolved
k4nagatsuki repo owner created an issue

Issue 189の報告より。

1.28の状態分岐や時限クーポン、1.29の@MP3、1.50の状態分岐などによるバージョン識別の方法を設けることを検討する。

ただ、今現在それを用意していないのには下のほうな理由があるので、よく検討する必要がある。

方法は用意していないです、というのは、CardWirthとCardWirthPyで露骨に挙動が異なるところがあれば、それはCWPyの方を修正しなければならないのであって、シナリオの側で対応するとより状況がこんがらがってしまうからです。

ただ、上に書いた手札選択のような事もありますし、シナリオの作者がCWPyのリリース版でテストプレイした時に挙動の違いを発見し、しかしCWPy側に報告はしない(という気持ちはすごくよく分かる)というような場合も考えると、たしかに識別できてしかるべきかもしれません。検討します。

Comments (14)

  1. k4nagatsuki reporter

    ゆう氏のバージョン識別サンプルシナリオの記述より。

    ・対象消去後のNPCをランダム選択で選択出来たらCW1.50。選択できなければNext。

    これはCWPyの互換性状況を考えると1.50のように動いてしかるべきだと思うのですが、存在しないキャラクターの選択によって思いもよらないバグが発生するかもしれず、対応は極端に難度が高いです。

    急いで対応するのは無理があるので0.12.2では見送ります。

  2. k4nagatsuki reporter

    今再確認したのですが、これはどうやら同行NPCには対象消去が効かないという問題のようです。そうであれば対応は容易です。

    これから作業します。

  3. k4nagatsuki reporter

    @CardWirthPy version.0.12.2のようなクーポンが常に存在するようにすればいいのですが(ゴシップは@クーポンのような仕組みが無いので問題がある)、クーポンの内容については考える余地があります。

    ご意見のある方は仰ってください。

  4. k4nagatsuki reporter

    例えば「0.12.2以降」と「0.12.2」を見分けるような方法があった方がいいかもしれません。「以降」の時は常に存在する@CardWirthPy version.0.12.2に加えて「そのバージョンだけ」存在する@CardWirthPy version.0.12.2 Onlyのような識別クーポンを設ければいいでしょうか。

    また、シナリオ側の判断をプレイヤーが避けたい場合に備えて、識別クーポンの類はプレイヤーがカスタマイズできるようにした方がいいかもしれません。@MP3も含めてData/SystemCoupon.xmlのようなファイルに記述するというような手が考えられます。

  5. k4nagatsuki reporter

    明日にも0.12.2をリリースしようと考えているのでぎりぎりこの上ないタイミングなのですが、正直に言ってこれを今すぐ実装するか悩んでいます。思えば0.12.1のリリースから10ヶ月近くかかって0.12.2を出そうとしているわけで、0.12.2の期間もかなりの長期になることが予想されます。その間に1.50との間に種々の挙動の違いが発見されることも予想できます。そうなると、「しばらく使われるバージョンがある」のに「簡単な識別方法はない」といういかにも不親切な状況が発生し得ます。

    実装自体は、データを外部ファイルに持つことなどを考えなければ簡単です。称号選択分岐で称号名を観て特別な処理を追加するだけです。バグが発生する恐れもほとんどないでしょう。後はすべきかせざるべきかという考え方だけの問題です。

    とりあえず、まだ1日あるので、もうしばらく考えてみます。

  6. tachi gigas

    長期的な話ですし、中々どう実装すればいいか難しいですし、k4nagatsukiさんの案以上のものは僕には思い浮かびません。ただ今後のことを考えると、とりあえずバージョン識別の方法を実装するのはそう悪くないとは思います。k4nagatsukiさんのご判断にお任せします。

  7. k4nagatsuki reporter

    ありがとうございます。実装する方向で明日(今日?)まで考えます。

    実施は夕方頃になるはずですので、それまでになにかよい案を思いついたら書き込んでください。

  8. k4nagatsuki reporter

    夕方にはちょっと早いのですが他の修正(またもフォントがらみ)との兼ね合いもあるのでこれからpushします。ありがとうございました。

    リリースまでに(もうあまり間が無いですが)何かあったら巻き戻します。

  9. k4nagatsuki reporter

    pull request #753

    まだ外部化云々の問題が残っているので、このIssueは優先度を下げて残します。

  10. Log in to comment