カードゲーム

現在公開しているものはテスト版です。
スキル効果、発動条件の動作確認も不完全であり、プラグインパラメータや
その他機能等も今後大きく変更する可能性があります。


デッキ構成のみで勝敗が決まるカードゲーム機能を追加します。



動作サンプル (ブラウザ版)

サンプルプロジェクト (ダウンロード版)
カードゲームを動作させるための準備を済ませたプロジェクトです、
ツクールMVをお持ちの方はこちらをダウンロードしてください。
このプロジェクトに含まれている TMCard.js は最新のものでない場合があります。
プラグインヘルプを確認のうえ、必要に応じて最新のプラグインを別途ダウンロードして
お使いください。


プラグイン( TMCard.js )のダウンロード

使い方

必要な準備は以下のとおりです。

プロジェクトの準備
 ・プラグイン(TMCard.js)の導入
 ・カード画像の準備
    サンプルプロジェクトの img/pictures フォルダ内の画像を
    コピー&ペーストして使ってください。

データベースの準備
 ・カードスキルの設定
 ・カードアイテムの設定
   アイテムのメモ欄にタグを書き込むことで、そのアイテムが
    カードとして扱われるようになります。

ゲーム内での準備
 ・カードゲームで使用するゲーム変数の初期設定
    プラグインパラメータ vnMaxDeck / vnMaxCard / vnMaxCost に
    カードゲームで使用するゲーム変数の番号を設定し、
    イベントコマンド『変数の操作』でこれらのゲーム変数に値を代入してください。
    vnMaxDeck の値が 2 ならば、ゲーム変数 2 番にデッキの最大数を代入します。
    デッキの最大数が設定されていないと、メニューコマンドにデッキ編集の
    項目が表示されません。
 ・カードアイテムの入手
    データベースでカードとして設定したアイテムを
    イベントコマンド『アイテムの増減』で入手してください。
 ・デッキ編集
    メニューコマンド『デッキ編集』でデッキを組んでください。
    カードがセットされたデッキがひとつもない場合はカードゲームが遊べません。
 ・プラグインコマンド(startDeckSelect / startCardBattle)の実行

カードゲーム後の処理
 ・勝敗判定
    プラグインパラメータ vnResult に設定した番号のゲーム変数に
    カードゲームの結果が代入されます。
    この値を使ってイベント内容を分岐させてください。
    -1 … デッキ選択の段階でキャンセルした
     0 … 引き分け (同時に最後のカードのHPが 0 になった)
     1 … プレイヤーの負け
     2 … プレイヤーの勝ち
     3 … 時間切れ (プラグインパラメータ maxTurn の値を超過)

操作方法

カードゲーム中に必要な操作はメッセージ送りのみとなっています。
ランダム要素は一切ありません、デッキ構成のみで勝敗が決まります。

デッキ編集の操作も通常のメニュー操作と変わりません。

タイプボーナス

ダメージ判定時に自分と相手のタイプを比較し、条件が合っていればダメージが
1 ポイントだけ加算されます。
条件は下記の 4 パターンです。
・攻撃側が 0 / 相手が 2
・攻撃側が 1 / 相手が 0
・攻撃側が 2 / 相手が 1
・攻撃側が 3 / 相手が 3

タイプボーナスはプラグインコマンド disableTypeBonus / enableTypeBonus で
適用するかどうか切り替えることができます。

メモ欄タグ (アイテム)

<cardCost:1>
 このアイテムをコスト 1 のカードとして扱うようになります。

<cardHp:10>
 このアイテムのカードとしての耐久値を 10 に設定します。

<cardAtk:2>
 このアイテムのカードとしての攻撃力を 2 に設定します。

<cardType:0>
 このアイテムのカードタイプを 0 番のものに設定します。
 タイプ値が 4 のカードはアイテムカードとして扱われます。

<cardElement:1>
 このアイテムのカード属性を 1 番のものに設定します。

<cardRare:2>
 このアイテムのカード稀少度を 2 番のものに設定します。

<unitSkill:20>
 このアイテムの固有スキルとして 20 番のスキルを設定します。

<partySkill:21>
 このアイテムのパーティスキルとして 21 番のスキルを設定します。

<cardAttackAnimation:2>
 このアイテムの攻撃アニメーションを 2 番に設定します。
 省略された場合はプラグインパラメータ『animationAttack』及び
『animationEnemyAttack』が適用されます。

<cardImage:sample_card>
 img/pictures フォルダ内の sample_card.png というファイルを
 カード画像として設定します。
 このタグがない場合 card_ という文字列にアイテム番号を
 付与したファイル名になります。

メモ欄タグ (スキル)

<cardEffect:1,2>
 カードスキルとしての効果を設定します。
 効果番号と効果値をカンマで区切って指定してください。

<cardRules:2,0 7,5>
 カードスキルとしての発動条件を設定します。
 条件番号と条件値をカンマで区切って指定してください。
 半角スペースで区切ることで複数の条件を設定できます。

<cardRepeats:2>
 カードスキルの効果が発動する回数を設定します。
 同一ターン内に複数回発動することはありません。

プラグインコマンド

startCardBattle 村人A 0 1,2,3
 対戦相手の名前、アイテムカード番号、デッキ(カンマで区切ったカード番号)
 を指定してカードゲームを開始します。
 プレイヤーが使用するデッキは、カードがセットされているデッキの中で
 最も上にあるものとなります。

 アイテムカード番号を負の値にすることでカードの初期状態を裏返しに
することができます。

startDeckSelect 村人A 0 1,2,3
 カードゲーム開始前にプレイヤーがデッキを選択することができます。
 デッキ選択がキャンセルされた場合、結果変数に -1 が代入されます。

isDeckReady 1
 プレイヤーが有効なデッキをひとつ以上組んでいるかどうかを判定します。
 カードゲームが可能な状態であれば、指定した番号のゲームスイッチが
 オンになり、不可能な状態(カードをセットしたデッキがない)であれば
 オフになります。

startDeckEdit
 デッキ編集シーンを呼び出します。

disableTypeBonus
 タイプボーナスの機能を無効にします。
 ゲーム開始時にはタイプボーナスが有効になっています。

enableTypeBonus
 無効にしたタイプボーナスの機能を元に戻します。

スキル効果

cardEffect タグで利用できる効果番号の一覧です。
赤色で条件が書かれているものは、その条件が自動的に付与されます。

1 : 相手に与えるダメージ+○○ / 自分のターンの計算フェイズ
2 : 相手に与えるダメージが2倍になる / 自分のターンの計算フェイズ
3 : 相手から受けるダメージ+○○ / 相手のターンの計算フェイズ
4 : 相手から受けるダメージが半分になる / 相手のターンの計算フェイズ
5 : 相手の継承スキルを無効化
6 : 相手の攻撃をスルー / 相手のターンの準備フェイズ
7 : 自分のHP+○○
8 : 自分の攻撃力+○○
9 : 自分の攻撃力を○○にする
10: 相手のHP+○○
11: 相手の攻撃力+○○
12: 相手の攻撃力を○○にする
13: ○○の攻撃力を最大にする ( 0 = 自分 / 1 = 相手 )
14: 自分のHP-○○、与えるダメージ+○○ / 自分のターンの計算フェイズ
15: 自分と相手の○○を入れ替える ( 0 = HP / 1 = 攻撃力 )
16: 自分と相手の○○を平均化 ( 0 = HP / 1 = 攻撃力 )
17: 相手に○○のダメージ / 自分のターンの準備フェイズ
18: 自分と相手に○○のダメージ / 自分のターンの準備フェイズ
19: 未使用
20: 自分の継承スキルを相手と同じにする
21: 相手の継承スキルを奪う
22: 相手の継承スキルを○○にすりかえる ( スキル番号 )
23: 相手の固有スキルを○○にすりかえる ( スキル番号 )
24: 使用済みスキルが復活する
25: 以降のタイプボーナスを無効化
26: 以降の攻撃力上限を○○にする
27: 以降の攻撃力上限+○○
28: 自分の攻撃力を以降の攻撃力上限にする
29: 攻撃力を1にするが、毎ターン攻撃力+1 ( 0 = 自分 / 1 = 相手 )
30: 攻撃力を最大にするが、毎ターン攻撃力-1 ( 0 = 自分 / 1 = 相手 )

スキル発動条件

cardRules タグで利用できる条件番号の一覧です。
○○は条件値によって変化します (括弧内は条件値に設定例)

1 : 自分のターンの○○フェイズ ( 0 = 準備 / 1 = 計算 / 2 = 攻撃 )
2 : 相手のターンの○○フェイズ ( 0 = 準備 / 1 = 計算 / 2 = 攻撃 )
3 : ○○ターン目
4 : 相手が○○タイプ ( -2 = 同じ / -1 = 違う / 0 ~ 3 )
5 : 相手が○○属性 ( -2 = 同じ / -1 = 違う / 0 ~ )
6 : 相手のレアリティが○○ ( -2 = 同じ / -1 = 違う / 0 ~ )
7 : 相手のポジションが○○ ( 0 = 1st ~ )
8 : 相手のHPが○○以上
9 : 相手のHPが○○以下、ただし 0 は除く
10: 相手のHPが○○になった
11: 相手のHPが○○( 0 = 奇数 / 1 = 偶数 )
12: 相手の攻撃力が○○以上
13: 相手の攻撃力が○○以下
14: 相手の攻撃力が○○になった
15: 相手の攻撃力が○○( 0 = 奇数 / 1 = 偶数 )
16: 自分が○○タイプ ( 0 ~ 3 )
17: 自分が○○属性 ( 0 ~ )
18: 自分のレアリティが○○ ( 0 ~ )
19: 自分のポジションが○○( 0 = 1st ~ )
20: 自分のHPが○○以上
21: 自分のHPが○○以下、ただし 0 は除く
22: 自分のHPが○○になった
23: 自分のHPが○○ ( 0 = 奇数 / 1 = 偶数 )
24: 自分の攻撃力が○○以上
25: 自分の攻撃力が○○以下
26: 自分の攻撃力が○○になった
27: 自分の攻撃力が○○ ( 0 = 奇数 / 1 = 偶数 )
28: 自分が○○を継承している ( スキル番号 )
29: 自分のコストが相手より低い
30: 自分のコストが相手より高い
31: 自デッキのタイプが統一されている
32: 自デッキの属性が統一されている
33: 自デッキのコストが○○以上
34: 自デッキのコストが○○以下

更新履歴

2017/03/24 ver0.1.6b
・攻撃アニメーション細かく設定する機能を追加
2017/02/14 ver0.1.5b
・スキルを持たないカードを許容するように仕様を変更
2017/02/06 ver0.1.4b
・デッキ編集シーンでアイテムカードが正しく選択できない場合がある不具合を修正
・タイプボーナスの有無を切り替えるプラグインコマンドを追加
2017/01/31 ver0.1.3b
・スキル発動条件 4, 5, 6 番の条件値に -1, -2 を追加
 自分と相手の値を比較する条件を設定できるようになります。
・デッキ編集シーンを呼び出すプラグインコマンドを追加
2017/01/27 ver0.1.2b
・スキル発動条件 31, 32 番が正しく動作しない不具合を修正。
2016/12/20 ver0.1.1b
・総ターン数が設定値を超えるとゲームを終了させる時間切れ機能を追加。
・チャージ中のアイテムカードの残りターン数を可視化。
・サンプルカード画像を追加 (データベース未設定)
2016/12/09 ver0.1.0b
・テスト版公開