WSN追加案: 効果対象と使用者に一時クーポンをつける
カードの使用中、効果対象と使用者に一時クーポンをつける事を検討します。
それらのクーポンは使用時イベントの開始と共に発生し、フィールドキーコードイベント・カード毎のキーコードイベントを経て、実際に効果が発生する直前に消滅する事になります。
文言は@効果対象
@使用者
辺りでしょうか。これは他形式で異なる文言が使用されていたとしても、形式変換時に変換する事が可能なので、衝突の危険無く決定できます(ただし@
クーポンである事が必要)。
@効果対象
については、イベント中につけたり消したりする事で、実際にカード効果となる対象を柔軟に差し替えるような事もしたいところです。例えば過去のシナリオには、ボスを庇うキャストや、敵がPCを身代わりにして攻撃を受けさせたりするイベントが存在しますが、そうしたイベントで擬似的にではなく本当にカード効果を肩代わりさせる事ができるようになります。他にも様々な応用があるはずです。
Comments (55)
-
reporter -
@効果対象はカード効果を受けるキャラ、@使用者はカード効果の威力決定キャラということでよろしいでしょうか?
もしそうであれば、@使用者が複数となった場合どういった挙動を取るか考えておいた方が良いかもしれません。
個人的には合体技のように各キャラで威力を出してそれを合算するという方法が良さそうだと思います。新しく現れたキャラは対象とならないように
それはそうしておいた方が良いかもしれませんね。
-
reporter @使用者
の付け替えは考えていなかったのですが、できた方が面白そうではありますね。どんな問題が発生しうるかはよく考えなくてはいけません。ただ、複数設定できるのはちょっと怖い気がします。まずは誰かに付け替えたら元の使用者からは剥奪されるようにした方がいい気がします。
-
イメージがよく掴めていないのですが、
イベント中につけたり消したりする事
というのは通常のクーポンGet/Lostコンテントで操作するのではなく、 結果的に@クーポンを付け変えられる新コンテントを作るみたいな感じなのでしょうか?
-
reporter いえ、普通の称号と同じように操作できたほうがいいだろうと考えています。
CWの称号は、元々システムデータの格納に流用されてきました。遺伝子やレベル上限などです。1.28で追加された隠蔽クーポン
:R
もその例に該当します。このようになっている理由には、データ構造を変更せずにデータを増やせるという開発側も都合があると思いますが、操作のために新しいイベントコンテントを増やさずに済むという点もあるのではないかと思っています。ただひとつの、そこまで使用頻度の高くない操作のために新しいイベントコンテントを設けるのは、すでに存在しているコンテントの数から考えてもあまりいい考えではありません。普通
@
で始まるシステムクーポンは操作できませんが、特定の称号を特定の場面に限って操作できるようにするのは簡単です。
ところで新規に出現したキャラクターには
@効果対象
をつけられないようにした方がいいという考えは、問題がありそうです。例えばフィールド上の全員を対象に処理したい時、@効果対象
をつけてもつかないキャラクターがいると、イベントの作り方次第でいつまでも処理が終わらない事になります。しかもその問題はレアケースでしか発生しないため発覚しづらいものとなるはずです。新規登場者にも@効果対象
はつけられるが実際に効果対象にはならない、という風にした方がおそらくよいでしょう。
@使用者
の付け替えもちょっと難しい所があります。シナリオ作者はたまに任意のPCの動きを止める事があります。しかしカード使用時イベントで@使用者
が変化すると、シナリオ作者から見て絶対に動かないはずのPCが動いてしまう事態が発生します。これはシナリオのバグの元になりそうです。 -
@効果対象
について気になったことがあります。 発言するまでもない事だとは思うのですが、 カード使用以前に@効果対象
等が付けられていた場合は誤作動を防ぐために、 それ等は全て初期化(消去)された方が良いと思います。 (初期化後に一時クーポン配布)
@crowstarさんの
@使用者
の付け替え案については、 名前を@身体適性参照
や@精神適性参照
等として 名前通りに値を参照するだけのものに限定して考えるのはどうでしょうか。複数存在する場合はその合計値もしくは平均値、または最大値を出すなど。 これならばカード使用者を変えることなく目的を達成できるものと思います。
-
reporter これらのクーポンはイベント中だけ出現するべきですね。使用前よりも、イベントが終了し、効果対象が特定された瞬間に一掃されるべきです。
個人的には、
@使用者
の変更は仕様決めの難しさのわりに使い出があまりなさそうな気がしているのですが、どうなんでしょう。対象の変更は、例えば特定の特徴を持った敵だけを攻撃するとか特定のアイテムを使ったPCだけにターゲッティングが集中するとか、色々応用を思いつくのですが。 -
@効果対象は色々できそうですねぇ
カード対象をシナリオ側で任意で決められるようなので、
完全なPC VS PC が実現できますかね?@使用者で実現できそうな事はちょっと考え付きませんでした。
-
これらのクーポンはイベント中だけ出現するべきですね。使用前よりも、イベントが終了し、効果対象が特定された瞬間に一掃されるべきです。
故意的な例ではありますが、連れ込みキャストにたまにある
@G
クーポン設定のように、 エディター側でキャストカードそのものに@
クーポンを設定できてしまう問題があります。@レベル上限
などの設定は個性を出すために利用することもできますが……。 (この場合は、@G
を複数持ったキャストが誕生してしまう。デバッグモードでも増やせます)こういった例外への対策をと思いまして、発言させていただきました。
@使用者
そのものの変更は思いつくとしたら、- 使用者を誰か分からなくする。
- ターン制RPGによくある複数回行動(の演出)。
- キャスト所有カードの上限数の無視。
- 麻痺や呪縛など行動不能なキャストを無理矢理動かす。
……辺りでしょうか? (こういうのは また別の機能として考えたほうがよさそうですね。ややこしい。)
しかし付け替え可能にした場合、
@使用者
が外されて所有者が誰も居ない場合は どうするかなどを考える必要もありそうですね。 -
うーん、
@使用者
を変更・追加する理由で個人的に思いつくのは合体技やカードの適正判定者の変更、
あとは吸収攻撃で回復する対象を変更するくらいでしょうか?
いまいち使い道がないのであれば@効果対象
だけを実装しても良いかもしれません。 -
reporter 一応、表題の機能を考え出して具体化しはじめた私の中の経緯について説明しておきます。
元々は、色々なイベントの中で、そのイベントの対象となっているキャラクターを特定したいという発想でした。使用時イベントにおけるカードの使用者と対象などを特定する必要があるとなると、選択メンバの仕組みでは明らかに足りません。これまでは、使用時イベント中で本来のカード対象に効果コンテントで何かする、などという事はできませんでした。称号選択分岐でフィールド全体を選べるようになった今、それをできるようにするには、該当者に一時クーポンがつくようにすれば充分です。
そこでカード効果の対象者に一時クーポンをつけるとなると、今度はこれを変更できたら便利そうだと思えてきました。そこの辺りまで具体的に踏み込んで提案したのは、ここまでしても案外仕様の衝突の危険は少ないのではないかと思えたからです(確信しているわけではないですが)。一時クーポンの文言は一対一で変換できますし、たとえ他仕様が一時クーポン以外の方法を選んだとしても、それを称号関係のイベントコンテントに変換する事だってできます。後はそのクーポンが着脱されるタイミングくらいですが、カード使用時イベントであれば、イベントの開始直前と終了直後以外には考えられません(イベント終了後にはカードの実際の効果対象者の反転描画が始まります)。
こうした考えで来ているので、使用者の方を変更するというのは完全に想像の外でした。こちらの方は、おそらく効果対象よりもずっと衝突問題が大きいように思えますし、利用範囲も比較的小さそうですし、
:R
のように、他シナリオに持ち出した時の不具合の原因にもなりそうです。リスクを負ってまで手を出したくないなぁというのが正直な所です。使用者にせよ効果対象にせよ、最初はイベント中の称号出現だけの実装から始めるのがよいと思います。付け替えは、その次の段階になるでしょう。
故意的な例ではありますが、連れ込みキャストにたまにある@Gクーポン設定のように、 エディター側でキャストカードそのものに@クーポンを設定できてしまう問題があります。
そういえばそうですね。新しい称号についてはイベント開始前に一掃するなどすればいいとして、遺伝子やら隠蔽クーポンやらはどうなるか試して、対応が必要ならしておく必要がありそうです。
-
>@k4nagatsukiさん、@crowstarさん
@使用者
の付け替えについて いくつか提案しておいてなんですが、 今のところ希望やら想像は出されていますが 具体的な処理方法ほか利点等は出されていません。 (言い方は悪いですが)現状 無計画と言えますし、 まずは基礎となる部分から実装されることに賛成します。中立的な意見のつもりで使い道を考えてみましたが、 個人的には複雑な機能になる(機能を持たせたい)場合は また別のものとして考えた方が良いと思います。 (無理に一時クーポンに拘る必要があるとは思えない)
-
reporter 適当な時期を見計らって以下のシステムクーポンを実装して、使用例なども作ってみようかと思います。
@使用者
イベントの発火要因となった行動をしたキャラクターにイベント開始時に付与。付け替えは不可。イベント終了時に剥奪。
@効果対象
カードの効果対象に付与。出現タイミングはカードの使用時で、剥奪タイミングは実際に効果が適用された時。付け替え可。付け替えた場合、カード対象の効果(色反転)に反映される。使用時イベント・フィールドキーコードイベント中に付け替えた場合は、色反転するカード=
@効果対象
の持ち主、となる。上の方に書いた、そのラウンドに出現したキャラクターをどうするかを考える必要があるが、今でもクーポン所持分岐やランダム選択などでそのラウンド中に出現したキャラクターを対象にあれこれする事はできてしまうので、問題として取り上げるのは今更かもしれない。なのでさしあたってその点は考えずに実装する。この問題はいっそ互換モードなどで対応するべきか?
@イベント対象
新提案になるが、あると便利そうなシステムクーポン。死亡イベントにおいての死亡者・キーコードイベントにおいてのイベント所有キャストに付与し、それらのイベント終了後に剥奪。付け替え不可。
このシステムクーポンは、使用時イベントにキーコード発火条件をつけてカウンター処理とか、エリアやバトルでPCに対してキーコードイベントを指定して発火、みたいな新機能と組み合わせる事で威力を発揮する事を見込んでいます。
仕様衝突の問題について。もし他の仕様で類似の機能が実装され、微妙に付与・剥奪タイミングが異なるなどの事になった場合、それらの機能を全て並立させるのが唯一の仕様マージ手段となるかもしれません。さらにクーポン名が被るなどして変換時に文言を換える必要が生じることなども考えられます。
これは混乱を招くので避けたい事態ですが、これらのシステムクーポンは非常に広い応用範囲が考えられるので、そのリスクを負っても実装した方がいいんじゃないかなぁ、と私は考えています。
実装してみてからそうでもなさそうだとなった時には、改めて取りやめにします。
-
reporter pull request #1566
上記の通り試験実装を行いました。
シナリオのバージョンがWsn.2以降でなければ機能しないようにしてあります。cwxeditorの20160922以降のテスト版で、Wsn.2のシナリオを作成できるようにしました。
-
reporter - attached Wsn2Targeting.wsn
簡単な機能テストシナリオです。
攻撃から味方をかばうイベント・死亡時に誰かを身代わりにするイベント・攻撃や魔法を反射するイベント・同じ対象が意識不明になるまで攻撃され続けるイベントを入れています。
-
reporter - attached Wsn2Targeting.wsn
シナリオの方にバグがあったので修正。
-
「叩くと絶対死ぬマン」に回復効果とダメージ(または吸収)効果を持つ攻撃キーコードをぶつけると、無限ループします。(回復効果でダメージ調整を行っているカードは多数存在します)
これはシナリオのバグと言えるでしょうが、ユーザーが陥りやすい罠だと思います。
また、この無限ループ中にF9を押すと、ループは停止しますがシナリオが終了しません。再度F9を押しても効かなくなります。行動の選択は行なえますが、戦闘を続行することもできません。
-
reporter ありがとうございます。
攻撃キーコードがついてるけどダメージの無いカードは考えましたが、そういえばとどめを刺さないカードもありましたね。今回はフェイントと攪乱を通すだけにしてしまいましたが、これはちゃんとやるなら回数制限などの工夫をするべきイベントです。たぶん作っている人は途中で気づくでしょう(たぶん……)。
F9の方はpull request #1568で修正しました。
-
サンプルの名前が…(笑)
これが実装されるとなるとWsn2は格段に出来ることが広がりますね。 ついでですが#279は使用時イベントで「@効果対象」を剥奪すればいいので閉じてもいいのではないでしょうか。自動選択への影響があるので全く同一というわけではないですが、 仕様衝突のリスクと天秤にかけてこれと同時実装するほどメリットはなくなったように思えます。
-
reporter たしかにできるのですが、issue #279の完全な解決となるとそうはいきません。
- 対象選択後に自分自身にも矢印が表示されてしまう。
- 自分以外全員回復のカードを、自分だけが負傷している状況で使ってしまうような事が起こる
ただ、これらに関してはまったく別の問題の解決が必要ですし(動的に対象が変わるカードと行動選択の兼ね合いをどうするか)、ほとんど実現できるようになったので無理にやるまでもなくなった、というのはその通りですね。
-
恐れ入ります。
その使用時イベントにおいての「@効果対象」がクーポン削除の対象外になっている(
content.py
の2394行あたり)のは何らかの誤動作の可能性があるのでしょうか。ちょっと自分では思いつきませんが、お暇がよろしければご教示下さい。ちなみに使用時イベントでの「@効果対象」の編集が実現すれば、当方の悲願であったレベル3フレアが実現可能になります。
-
reporter それは逆で、システムクーポンの中で
@効果対象
だけが追加・削除が可能になっています。そのためのコードです。もしそれが正しく動いていないとしたら別の問題がある可能性があります。例えばシナリオのWSNバージョンが2以降になっていない時は
@効果対象
も操作する事はできません。 -
start "使用時イベント" brcoupon M, "@効果対象" if true losecoupon M, "@効果対象" brcoupon M, "@効果対象" if true se "システム・エラー.wav", 0, 0, 100, 1 elif false se "システム・シグナル.wav", 0, 0, 100, 1 fi elif false se "システム・エラー.wav", 0, 0, 100, 1 wait 2 se "システム・エラー.wav", 0, 0, 100, 1 fi
このような使用時イベントを持つ使用者を対象とするカードを作ってみたのですが、WSN2シナリオではエラー音が1回(
@効果対象
の削除に失敗)、それ以外のシナリオではエラー音が2回(@効果対象
が存在しない)という結果になります。この挙動は意図されたものでしょうか?(
@効果対象
の削除に失敗しているのは、おそらくバグだと思いますが)WSN2シナリオ以外で使用時イベントでこれらのクーポンを利用できないのは、問題ではないかと思います。
-
reporter はい、バグですね。すいません。いつの間にか使用時イベント中には機能しなくなっていました。
pull request #1573で修正しました。
-
- attached blue_masic_wsn2.wsn
舌足らずで大変失礼しました。上記の申し出はIraka.T様のご指摘と重複するものです。申し訳ございません。
というわけで、申し上げたサンプルスキルが完成したので添付します。スキルバランス等を熟考する必要が出てきますね…。
-
WSN2シナリオにおいて使用時イベントでの
@効果対象
付け替えが正常に働くことを確認しました。ただし、WSN2シナリオであれば、クラシックシナリオで獲得したカードでも
@使用者
や@効果対象
を利用できるようになっています。逆に、WSN2シナリオで獲得したカードであっても、クラシックシナリオやWSN1シナリオでは
@使用者
や@効果対象
を利用できません。実験段階の仕様ではありますが、これは非常にまずいと思います。バランスの調整も困難ですし、仕様の問題点についての検証できません。
-
reporter カードデータ自体にデータバージョンを持たせなければなりませんが、これはエディタの方の修正が必要ですね。
修正はできますが、ちょっと今は無理です。しばらくお待ちください。
-
reporter pull request #1575で(他の作業の間に挟まってますが)修正しました。お試しください。
-
修正対応ありがとうございます。シナリオ外に持ち出したカードも正常に使用時イベントが働きました。
-
reporter 問題を一つ。
PCが使用するカードにキーコード発火条件をつける機能などが増えた時、魔法の反射などのイベントで問題が生じるかもしれません。というのは、PC側に反射された効果によって敵のキーコードイベントが発火し、その敵が魔法を反射した場合にPC側でまた反射が起き……という無限ループパターンが発生してしまう可能性があるからです(ちなみに
@使用者
を反射対象に選んだ場合は色々複雑な経過をたどって最終的に@使用者
が効果を受けます)。これは、私が上げたデモシナリオで起きうる無限ループパターンよりは現実的な問題になりえます。カードやシナリオの作者が注意すれば回避できますが、その注意を徹底する事は不可能と思われます。
対処方法を色々考えたのですが、その中で一番ましそうなのは以下のようなものです。
@効果対象
を剥奪されたキャラクターは、そのイベントの間だけ@効果対象外
というクーポンがつく@効果対象外
を持つキャラクターは@効果対象
を付与しようとしても失敗する
将来的には
@効果対象外
をシナリオ側から剥奪できるようにしてもいいかもしれませんが、とりあえず剥奪できないようにした方が安全でしょう。他にいい案を思いついた方はお教えください。
-
reporter - attached Wsn2TargetingLoop.wsn
無限ループの例です。
これは意図的ですが、たぶん実際にはシナリオ側のイベントと持ち込んだカード側のイベントの両方が絡んだ微妙な状況で発生するでしょう。
-
@効果対象
を一度でも剥奪すると、一連のイベントの中では再度付与することができなくなるということでしょうか。代案は思い浮かばないのですが、現状、
@効果対象
を一度も剥奪せずに全員に同じ処理をする(対象とするかどうかを検査する)ことができないはずなので、この機能の汎用性を著しく損なうと思います。フィールド全体を対象とした評価選択や、クーポン所持者全員に処理を行うスタートやパッケージの呼び出しができれば、概ね解決できるでしょうか。
-
例については、キーコードイベントで目標を反らしているのに、反らした先のキーコードイベントも発火させているのが問題に思えます。エネミーカードに対する事前キーコード発火イベント時点で「そのカードに対する事前キーコード発火フェーズ」は終了しているのですから、その後は死亡時イベント・キーコード成否(○×)イベント以外を二度も見る必要はないように思います。(キーコード発火イベントによる反射はシナリオ側の操作なので反射で違うエネミーのキーコードを貫通してもシナリオ作者が仕様を把握していれば問題ないですし)
ただ「PCが使用するカードにキーコード発火条件をつける」が実装された場合はキーコード発火無し反射には問題があるので両陣営で見る必要があると思います。(PCが使用カード発火起点で敵の魔法をリフレクした場合、キーコード発火するようにし、再リフレクについては防げない)
-
すいません、よく考えると
@効果対象外
で問題ないですね。剥奪された時というか、キーコードイベントが終了した時にそのイベントが終了するまで
@効果発動済み
が付けばいいでしょうか。 -
reporter 代案は思い浮かばないのですが、現状、@効果対象を一度も剥奪せずに全員に同じ処理をする(対象とするかどうかを検査する)ことができないはずなので、この機能の汎用性を著しく損なうと思います。
これは確かに問題ですね……他の方法でも不可能ではないのでは、と思って考えてみましたが、思いつかない程度には難しいようです。
となると、@akkwさんの仰るようにキーコードイベント発火か終了時に
@効果適用済み
(「発動」より「適用」の方がいいと思った)のような称号をつけて、その称号を持つ者には@効果対象
がつけられなくなる(つまりシステム側でつけられたものを剥奪すると二度とつけられない)、などがよさそうでしょうか。夜中に考えているので何か穴がありそうです。もうしばらく考えてみます。
-
reporter 穴がありました。いわゆる「かばう」イベントの時、「かばう人」が「かばわれる人」より先に全体攻撃を受けると、かばった時のダメージが消滅してしまいます。
最初の案の変形として、使用時イベントやエリアイベントの時を避けて、本当に各ターゲットに対して効果が表れ始めた時から
@効果対象外
が発生するようになる、というのはどうでしょう。 -
reporter まだ妙案は出ていなさそうですので、とりあえず実際に効果が現れ始めた段階(ターゲットの色反転が生じる段階)で
@効果対象外
が発生する方法を実装してみます。もっといい方法が見つかったらそちらに替えます。
-
reporter pull request #1596
実装しました。この方法はターゲットが移された時に移された先で効果が消滅してしまう問題がありますが、面倒な状況で無限ループが発生するよりはおそらくましです。
-
reporter pull request #1653
試してみたら案の定
#428の効果コンテントから動かした時に正しく機能しなかったので修正。 -
- attached blue_magic_wsn2.wsn
恐れ入ります。
添付のLv3フレア又は波紋を他のシナリオに持ち出して敵に使用した時、 エラーを吐いてフリーズする事を確認しました。下記ログはLv3フレアのものです。
Version : 1.1 / 2015-10-10 01:45:31 DateTime: 2016-12-30 14:06:20 Traceback (most recent call last): File "******\cwpy\cw\thread.py", line 704, in run self._run() File "******\cwpy\cw\thread.py", line 734, in _run self.main_loop(True) File "******\cwpy\cw\thread.py", line 743, in main_loop self.eventhandler.run() # 繧、繝吶Φ繝医ワ繝ウ繝峨Λ File "******\cwpy\cw\eventhandler.py", line 100, in run self.rclick_event() File "******\cwpy\cw\eventhandler.py", line 309, in rclick_event self.background_event() File "******\cwpy\cw\eventhandler.py", line 364, in background_event cw.cwpy.call_modaldlg("BATTLECOMMAND") File "******\cwpy\cw\thread.py", line 1426, in call_modaldlg self.main_loop(False) File "******\cwpy\cw\thread.py", line 743, in main_loop self.eventhandler.run() # 繧、繝吶Φ繝医ワ繝ウ繝峨Λ File "******\cwpy\cw\eventhandler.py", line 113, in run self.executing_event(event) File "******\cwpy\cw\eventhandler.py", line 618, in executing_event func(*event.args, **event.kwargs) File "******\cwpy\cw\battle.py", line 88, in start self.run() File "******\cwpy\cw\battle.py", line 157, in run member.action() File "******\cwpy\cw\character.py", line 977, in action self.use_card(targets, header) File "******\cwpy\cw\character.py", line 903, in use_card cw.event.CardEvent(e, header, self, targets).start() File "******\cwpy\cw\event.py", line 1253, in start Event.start(self) File "******\cwpy\cw\event.py", line 736, in start self.run() File "******\cwpy\cw\event.py", line 807, in run self.run_exit() File "******\cwpy\cw\event.py", line 1266, in run_exit self.clear_eventcoupons() File "******\cwpy\cw\event.py", line 1118, in clear_eventcoupons self.update_targets() File "******\cwpy\cw\event.py", line 1140, in update_targets if ccard.has_coupon(u"・蜉ケ譫懷ッセ雎。"): File "******\cwpy\cw\util.py", line 3467, in acquire return f(*args, **kw) File "******\cwpy\cw\character.py", line 1607, in has_coupon return self._has_coupon(coupon) File "******\cwpy\cw\character.py", line 1610, in _has_coupon return coupon in self.coupons AttributeError: 'EnemyCard' object has no attribute 'coupons'
EnemyCard
はCharacter
のサブクラスですので、 ソースを見る限りはどう考えてもself.coupons
は持っている様に思うのですが…? Pythonへの理解が浅いためか、手詰まりとなってしまいました。 大変お手数ですが、ご教示をお願いします。というか前の添付ファイルTypoがありますね。浅学失礼しました。
-
reporter Pythonでは、親クラスのコンストラクタの呼び出しは、明示的に書かなければ発生しません。
この場合は
character.Enemy.__init__()
が呼び出されるタイミングでCharacter
のコンストラクタが実行され、その中でself.coupons
が作られる事になりますが、この呼び出しはオブジェクトが作られた時点ではなくEnemyCard.initialize()
の実行タイミングで起きています。なぜ
EnemyCard
の作成時点で初期化するのではなく別メソッドを用意しているのかというと、バトルエリアには当初からフラグがオフになっている非表示カードがあり、それら全ての初期化が走ると馬鹿にならないパフォーマンス問題が発生するからです。今回のバグは、その初期化が行われていない(つまりまだ表示されていない)カードも効果範囲処理の対象に入ってしまっている事が原因のようです。これは実装した私のミスです。
cw.cwpy.get_mcards("unreversed")
で、非表示も含めた全てのエネミーカードが取得できてしまっているのでしょう。この辺のカードの一覧取得関係はもっと問題がありそうな気がします。ちょっと調査して修正してみます。
-
reporter pull request #1685
たぶんこれでいいと思うのですが、レビューをお願いします。
それにしてもこれらのスキル、アイデア豊富で凄い。
-
対応ありがとうございました。用事で遅くなりましたが、正常な動作を確認しました。そう言えばPythonはインスタンスの初期化は任意のタイミングで行えましたね。失念しておりました。
ゴブリンパンチの仕様は今も悩み中です。
-
reporter マージしました。ありがとうございます。
ゴブリンパンチの仕様は今も悩み中です。
召喚獣を付与する辺りが特に悩ましいですね。付帯能力と召喚獣をうまいこと区分けして敵に召喚獣付与というものが常に機能するようにできないかな、と時々思うのですが、どうやっても現在の挙動を壊してしまいそうです。
-
reporter Wsn.2の新機能ページにスクリーンショットを載せようと思っているのですが、それに@tachi_gigasさんのレベル3フレアを使用してよろしいでしょうか。見た目にとても分かりやすいサンプルだと思います。
-
お疲れ様です。
本心を言いますと実は店シナとして完成させるつもりで、まぁまだシナリオの構想中なのですが、正直な所α版が出て焦っている所でした。他にもやりたいことあるのに……。
ご事情はそんな思惑とは全く別だと思うので、紹介頂くことは構いません。ありがとうございます。
-
reporter お返事ありがとうございます。無理を言ってすみません。
さしあたりサンプルとしてスクリーンショットを出させていただくとしても、店シナリオの完成などで適切なものではなくなる事も考えられますね。たかだかスクリーンショット1枚ですので、別のものに差し替える事はいつでもできます。気が変わったら仰ってください。別のサンプルをすぐ用意できるならそっちを使った方がいいよ、と仰っていただいてもかまわないです。
あと、今までの傾向からすると、おそらくα版の期間はそこそこ長くなるはずです。数ヶ月はかかるでしょう。急がなくても大丈夫だと思います。
-
reporter スクリーンショットを載せました。ありがとうございます。
-
どういたしまして。
ほぼオフトピで恐縮ですが、取り急ぎスキル画像と敵画像を埋めたバージョンを下に公開しました。スクリーンショットは全てPublic Domainの画像で埋まるはずです。
https://bitbucket.org/tachi_gigas/cardwirthpy-reboot-lessor/downloads/blue_magic_wsn2.wsn
はて、スキル画像の上5ピクセルを空ける常識(?)はPyでは通用しないですね。でも癖でやってますし、分けるのも面倒ですが。
-
reporter お手数をおかけしました。ありがとうございます。スクリーンショットを差し替えました。
いっそのこと、Wsn.1の時と同じように、機能の実例としてこのシナリオへリンクを張れるとさらに嬉しいのですが、いかがでしょう。もちろん、お断りいただいて構いません。
高解像度化対応もされていますが、繊細なイメージが多いので効果が劇的ですね。実に美しいです。
はて、スキル画像の上5ピクセルを空ける常識(?)はPyでは通用しないですね。
フォントを変えてしまうとそうなりますね。デフォルトで使用する割合を考えると、意味がなくなるわけでもないと思いますが。
-
そういえば、
image.py
515行前後のif wx.VERSION[0] <= 3:
で効果系カード名のサイズを1大きくする処理が加わっており、 これによってメニューカード名より効果系カード名が大きくなっていますね。基本的に長月さんは文字が大きい方が好みなようなので自分の方で直すようにして報告はしていませんでしたが、サイズが変更できるフォントで反映されるサイズが一定していないというのはおかしいので、カーソルのようにWXの仕様変更に合わせてその後直ってしまった可能性も…? -
reporter うわ……どうして気づかなかったんだろう?
wxPythonのピクセルサイズ指定によるフォント生成にはおかしなところがあって、wxPython 2系だと3系より1ピクセル小さな文字になってしまいます。かなり前に、それに対処するためのコードをあちこちに入れたのですが、条件式のミスで誤爆してしまっています。もちろん正解は
if wx.VERSION[0] < 3:
です。wxではなく私のミスです。申し訳ない。pull request #1713で修正しました。
-
恐れ入ります。紹介して頂く分には未完成でよければ構わないと思います。しかし最低でも、これから使用する素材次第ですが、シナリオ自体のライセンスを考える必要がありますが。いずれにせよ時間をください。
-
reporter ありがとうございます。何度もご迷惑をおかけして申し訳ありません。
急ぐような話ではないので、ゆっくり決めていただければと思います。
-
reporter - changed status to resolved
実装済みなので完了にします。
- Log in to comment
@効果対象
は(この文言にするかはさておき)、そのラウンドで新規に現れたキャラクターは対象にできないようにした方がいいかもしれません。CWでは新しく出現したキャラクターは全体攻撃などの対象になりません。それを前提にしたシナリオもいくらかあったように記憶しているので、使用時イベントなどで
@効果対象
をつける事ができてしまうと不具合発生の原因になります。