CardWirthエンジン分析-カードの「有効条件」
CardWirthの戦闘時の思考ルーチンはなかなかに賢い。状況に応じたカードを的確に使用し、明らかに無駄な行動はしない。
この記事では、CardWirthのそんな挙動を実現している仕組みについて解説する。
カードの「有効条件」
いきなりだが、召喚獣カードの起動条件をもとに割り出した、カードの「有効条件」を紹介する。カードの「有効条件」を満たす対象が存在するときに限り、そのカードは有効と扱われ、召喚獣カードは起動し、アクション・アイテム・技能は自動選択(と敵のカード使用)の候補に入る。
カード対象
キャストがカード対象に該当すれば有効、そうでなければ無効と判断される。
カード属性
カード属性 | 有効条件(対象の属性) |
---|---|
物理属性 | 対象が「武器が効かない」でない |
魔法属性 | 対象が「魔法が効かない」でない、かつ使用者が「魔法無効化状態」でない |
魔法的物理属性 | 対象が「武器が効かない」でないか「魔法が効かない」でない |
物理的魔法属性 | 対象が「武器が効かない」でなく「魔法が効かない」でない、かつ使用者が「魔法無効化状態」でない |
無属性 | 常に有効 |
モーション属性
モーション属性 | 有効条件(対象の属性) |
---|---|
全属性 | 常に有効 |
肉体属性 | 「命を持たない」でない |
魔法属性 | 「魔法生物」 |
神聖属性 | 「不浄な存在」 |
精神属性 | 「心を持たない」でない |
炎属性 | 「炎に耐性を持つ」でない |
冷気属性 | 「冷気に耐性を持つ」でない |
モーション効果
モーション効果 | 有効条件(対象の状態) |
---|---|
生命力-ダメージ | 「意識不明」でない |
生命力-回復 | 「負傷」「重傷」「意識不明」のいずれかである |
生命力-吸収 | 「意識不明」でない |
中毒 | 「意識不明」でない |
麻痺 | 「意識不明」でない |
中毒解除 | 「中毒状態」 |
麻痺解除 | 「麻痺状態」または「石化状態」 |
精神力-回復 | 生存状態 (技能カードの有無を考慮しない) |
精神力-不能 | 常に無効 |
束縛 | 「束縛状態」でない |
暴露 | 「暴露状態」でない |
沈黙 | 「沈黙状態」でない |
魔法無効化 | 「魔法無効化状態」でない |
束縛解除 | 「束縛状態」 |
暴露解除 | 「暴露状態」 |
沈黙解除 | 「沈黙状態」 |
魔法無効化解除 | 「魔法無効化状態」 |
対象消去 | 「意識不明」でない |
召喚 | 召喚獣カード欄に空きスペースがある |
召喚獣消去 | 召喚獣カードを所有している(付帯能力を含む ) |
カード消去 | 行動可能 |
カード配付 | 行動可能 (技能カードの有無を考慮しない) |
睡眠 | 「睡眠状態」でない |
恐慌 | 「恐慌状態」でない |
激昂 | 「激昂状態」でない |
勇敢 | 「勇敢状態」でない |
精神正常化 | 「睡眠状態」「恐慌状態」「激昂状態」「勇敢状態」のいずれかである |
行動力変化(+N) | 行動力変化<+N |
行動力変化(±0) | 行動力変化≠±0 |
行動力変化(-N) | 行動力変化>-N |
防御力変化(+N) | 防御力変化<+N |
防御力変化(±0) | 防御力変化≠±0 |
防御力変化(-N) | 防御力変化>-N |
抵抗力変化(+N) | 抵抗力変化<+N |
抵抗力変化(±0) | 抵抗力変化≠±0 |
抵抗力変化(-N) | 抵抗力変化>-N |
回避力変化(+N) | 回避力変化<+N |
回避力変化(±0) | 回避力変化≠±0 |
回避力変化(-N) | 回避力変化>-N |
- 発声が必要なカードについて、沈黙状態か否かは考慮しない。
- 各状態異常は、状態異常の有無のみ判定され、持続時間は考慮しない。
- 各能力変化は、変化値の大小のみ判定され、持続時間は考慮しない。
- カードの成功率修正は考慮しない。成功率補正が「絶対失敗」でも有効と判断される。
- 技能カードの有無や技能使用回数は考慮しない。たとえば技能カードを持っていないキャストに対しても、モーション「カード配付(特殊技能)」は有効と判断される。
- 防御力・回避力・抵抗力変化は考慮しない。例えば、防御力修正+10補正があるキャストに対しても、モーション「生命力-ダメージ」は有効と判断される。
有効カードの判定と目標決定処理
自動選択および敵やNPCの行動における有効カードの判定と目標決定処理は以下のように行われていると推測できる。
- 「対象なし」の手札カード については、使用時修正があれば有効と判断する。
- それ以外のカードについては、以下のチェック手順を行う:
- カードの モーションに上から順に
、以下の判定を行う:
- カード対象・カード属性・モーション属性・モーション効果の全てで「有効条件」を満たすキャスト
が存在すれば、そのカードを有効と判断し、使用対象となるキャストをそこから選出し、判定を終了する。
- カード対象・カード属性・モーション属性・モーション効果の全てで「有効条件」を満たすキャスト
が存在すれば、そのカードを有効と判断し、使用対象となるキャストをそこから選出し、判定を終了する。
- 「有効条件」を全て満たすキャストが見つからなければ、そのカードを無効と判断する(使用しない)。
- カードの モーションに上から順に
、以下の判定を行う:
特に、 モーションの上から順に「有効条件」の判定を行い、使用対象を決定する ことに注意してほしい。
例
- Pabit氏の『十三の魔女の話』p.2「オズの魔法使い」において、魔女「ドロシー」は物語の内容に即したパワーアップアイテムを使ってくる。その挙動はカードの「有効条件」を用いて実現されている。
- 登場するキャストの属性は以下のように設定されている:
- 「ドロシー」(魔女)は「心を持たない」
- 「案山子」は「命を持たない」「心を持たない」「不浄な存在」(神聖属性有効)
- 「ブリキ男」は「命を持たない」「心を持たない」「魔法生物」(魔法属性有効)
- 「ライオン」は特徴なし(精神属性有効)
- そして、ドロシー(魔女)のもつパワーアップアイテムは以下のように設定されている:
- 「脳みそ」は対象が「味方単体」、全てのモーションが「神聖属性」
- 「心臓」は対象が「味方単体」、全てのモーションが「魔法属性」
- 「勇気」は対象が「味方単体」、全てのモーションが「精神属性」
- このとき、カードの「有効条件」から、
- 「脳みそ」は「案山子」にのみ有効
- 「心臓」は「ブリキ男」にのみ有効
- 「勇気」は「ライオン」にのみ有効
- 登場するキャストの属性は以下のように設定されている:
- モーション「精神力-不能」は常に無効と判断される。このモーションをもつカードを敵に持たせる場合、別のモーションを付ける必要がある。実際、groupASKの『賢者の選択』に登場する「ワイト」の技能カード「亡者の手」のモーションは「生命力-ダメージ」→「精神力-不能」と指定されている。
TIPS
- 付帯能力カードの対象を使用者、モーションを「カード交換」のみにしておくと、所持者が行動可能な時だけ発動する付帯能力が作れる(実際の効果は使用時イベントで実現する)。
- ゴーストやウィスプなどの「武器が効かない」敵に対して物理属性のカードは無効と判断されるため、そのような敵に対してアクションカード「攻撃」は通常選択されない。プレイヤーキャラが手札の自動選択で「防御」「見切り」しか行わない場合、目の前の敵は武器が効かないと判断できる。
- 『交易都市リューン』の「居合斬り」のモーションの前後を入れ替えて、 「生命力-ダメージ(神聖属性)」→「生命力-ダメージ(全属性)」 のようにすると、自動選択において「不浄な存在」を優先するカードになる。
まとめ
- CardWirthのカードの自動選択、敵やNPCのカード使用、召喚獣起動において「有効条件」がチェックされ、これをパスしたカードのみが使用される。
- 「有効条件」はカードの効果が無効にならない条件+状態異常を無駄撃ちしない条件である。
- 敵とNPCは「対象なし」のカード以外で「有効条件」を満たさないカードを使用しない。
参考ページ
本コラムの内容を基にした追加検証が以下のページで行われているので参考にされたし。