Behind Coleus

大学生なのに特別大学で楽しいことが一 つもない。虐待と男子校病のせいにしてみる。→日本脱出しました 今ジャカルタにいます。→ジャカルタから帰ってきました。

カードの実装①

注 以下の記事は(現時点で)非公式なエクファンのブラウザゲームの作成を目的にしたメモ書きとなります。
画像の著作権は、全てファンタジスタ益村に帰します。

最初にデッキに入れない特別なカード、ファーストエナジーの機能を説明します。

このカードが持つべき機能は
・ゲーム開始前に、Sゾーンに裏向きで起き、ゲーム開始とともに、表向きにします。

エナジーと名称の二つの値を常に保持・参照します。
・このカードはスピンしてカードのプレイに使うことが出来ます。その場合、全てのエレメントのエナジーとして扱います。
・XフェーズでX:SKILLを使うことが出来ます。
・どんな場合でも、Xゾーンのカードが6枚以上になったら、このカードをXゾーンに移動し、ゲームを敗北します。

ファーストエナジー以外の全てのカードが持つべき機能を説明します。

・裏向きと表向きという二つの状態がある。同時になることはない。

表向きの場合、カード画像を表示し、裏向きの場合裏面の画像を表示する。

・スピンとリスピンという二つの状態がある。同時になることはない。
スピン状態の場合、カード画像を90度回転させた状態で表示し、リスピン状態の場合、正位置で表示する。
・場(Fゾーンと同じ)、Sゾーン、Xゾーン、墓地、手札、山札のいずれかに存在し、それは同時に複数所属できない。

存在する領域に応じてそれぞれ違った位置に表示する。
・自身の名称及びエレメントの情報を保持する。

・カードの画像をクリックした場合にカードの詳細情報を表示する。
これらは常に参照、記録される。





まずは、効果のないファイターカードの実装から始めます。

能力とスキルを持たないファイターを含めすべてのファイターが持つべき機能は
いくつかあります。すべてのファイターは以下の機能を持ちます。
・エレメント、カードパワー、エナジー、パワー、クラス、タグの値を保持し、それを参照する機能。
エナジー分のファーストエナジーをスピンさせて召喚する機能

・自身が持つエナジーとSゾーンのカードのエレメントが同じになっているかチェックして、それをタップして召喚にする機能。
・撤退フェーズにSゾーンに送る機能。(これは、ゲームシステムで実装すべきかもしれません)
・Fゾーンのスピン状態のファイターとバトルする機能
・Sゾーンのファイターとバトルする機能
・ファーストエナジーに攻撃する機能
・Sゾーンのタクティクスに攻撃する機能

・Fゾーンでバトルによって破壊されたときに撤退するか墓地に送るか選ぶ機能(これはターンプレイヤーの行動ではないので、撤退を選ぶかどうかは、時間制限がつくべきです)また、Sゾーンのカードのエナジーの合計と、破壊されたファイターのエナジーを合計し、それが10を超えた場合は、撤退を選ぶことはできず自動的に墓地に送られる機能。
・Sゾーンでバトルによって破壊されたときにXゾーンに送られる機能
・Sゾーン及びFゾーンでカードの効果によって破壊されたときに、墓地に送られる機能

・Fゾーンに召喚されたターンを記録し、そのターンの間は攻撃できないようにする機能。

次にスキル ガードについての機能です。



・相手がアタックしてきたときに、そのファイターがリスピンしていればガードをするか選択できます。そのクリーチャーのパワーが自身より低ければ相手のファイターを破壊できる機能を持ちます(これは非ターンプレイヤーの行動なので、制限時間を設ける必要があります)//ドミニオンオンラインの堀のような防御カードのような確認を一瞬設けて何も触らなければ、そのままゲームが進むようにする。 ガード可能なファイターを光らせ、それをクリックすればブロックできるようにするのが望ましい。



効果持ちのファイター

ゲーム上の様々な条件を参照する機能を持ちます。

大抵の場合、条件とその範囲、効果の3つが記述されています。それを実装するのは以下のような機能が必要である。
・条件により定められた他のカードや他の領域の状態を常に確認します。 非ターンプレイヤーが条件を満たした場合、目立つようにカードが光り数秒間確認が挟まるのが望ましい。

・効果を適用する。 常にその範囲や条件を参照し、ゲームの進行に合わせて適用を解除、再適用する。

ライジングファイター

持つべき機能を説明します

・ファイターの基本的なステータスのほかに、エナジーのエレメントという値を保持する

・指定のクリーチャーが自身のFゾーンにいる場合のみ、召喚出来て、自身のエレメントの他、エナジーのエレメントが同じSゾーンのカードを使用して召喚できる。

・指定のクリーチャーの各種状態を参照する。

・召喚した場合、指定のクリーチャーはライジング元として扱われ効果は適用されなくなる。

・召喚したターンに攻撃できる

・同じパワーを持つクリーチャーに対して有利にバトルを行える。

タクティクスカードについて必要な機能を紹介します。

まずは、エナジー型の効果のカード、つまり効果のないタクティクスカードが持つべき機能を説明します。

・必要エナジー、タグの情報を持ちそれを参照します。

・発動したのち、Sゾーンに移動する機能。

エナジーの調整の実装をする

自分のSゾーンがカードの発動や移動で【10】を超えた場合(11以上)
エナジーの調整」というルールが発動します。

タクティクスカードの場合は、
①手札からタクティクスカードの発動を宣言する。
②発動するとSゾーンのエナジーが10を超えるかどうか確認する。
③10を超える場合、カードの効果発動前にエナジーの調整を行う。
④自分のSゾーンの合計エナジーが10以下になるように、自分のSゾーンのカードを自分のXゾーンに裏側で移動させる。なお、この枚数は最も少なくなるようにしなければならない。

こうしてXゾーンにカードが増えることを「ペナルティ」と呼びます。

・Sゾーンでこのカードをスピンさせることでカードのプレイの助けとなる。この場合は、必要エナジーではなく、エナジーを参照する。

次に単発発動型のタクティクスカードの効果を説明します。

・発動後手札から発動した場合の効果を適用します。また、文章内に書かれている他の条件を取得、参照します。

持続発動型のタクティクスが持つべき機能を説明します


・条件を参照し、相手ターンも常に効果を適用する。
・相手ターンに条件を満たし、発動が任意な場合は、確認画面を表示する。